您现在的位置: 电子商务模式 >> 电子商务技术 >> 数据 >> [EB技术]正文  显示方式: 

在Transact-SQL中处理字符串数据 - aShun008的文章
http://tech.caneb.com/ 时间:2006-12-29 9:21:43 点击数:   电子商务模式[技术]频道 

今日不可不关注的电子商务技术资讯:

【文章简介】 在Transact-SQL中处理字符串数据Author:aShun008QQ:61437524E-Mail:aShun008@163.comDate:16:422006-12-27这里主要演示在Transact-SQL中处理字符串数据的一种方法,由于这也是针对笔者工作中遇到的问题,因此只能说是针对这个或者这类问题所提供的一个方法,希望能给需要的朋友“抛砖引玉”。问题:将

【文章正文】

在Transact-SQL中处理字符串数据
Author:aShun008
QQ    :61437524
E-Mail:aShun008@163.com
Date  :16:42 2006-12-27

    这里主要演示在Transact-SQL中处理字符串数据的一种方法,由于这也是针对笔者工作中遇到的问题,因此只能说是针对这个或者这类问题所提供的一个方法,希望能给需要的朋友“抛砖引玉”。

问题:
    将类似“465,466,467,467,468,469,470,464,465”这样的用逗号隔开的数字组成一串字符修改成“464,465,466,467,468,469,470”这样的一个字符串。

注意:
    1、原字符串的长度是不确定的,但可以肯定是用逗号隔开的整型数字;
    2、目标字符串逗号隔开的数字是按照从小到大的顺序排列的,并且没有重复数值;

方法步骤:
    1、取出逗号间的数据保存到临时表;
    2、用SELECT DISTINCT FieldName FROM #Table ORDER BY FieldName 整理数据顺序和重复;
    3、建立游标叠加出目标字符串;

实现代码:
    DECLARE
    @Str VARCHAR(255),    --源字符串
    @Separator VARCHAR(1) --分隔符

    SET @Str = '465,466,467,467,468,469,470,464,465'
    SET @Separator = ','  --指定为逗号分隔

    DECLARE
    @Value VARCHAR(10),  --临时保存取出的单个数值
    @CommaPos INT,       --逗号的位置
    @Result VARCHAR(255) --保存结果字符串

    SET @Result = ''     --置结果初始值为空(为后面好判断)

    CREATE TABLE #T (Mile int NULL)
    SET @CommaPos =  CHARINDEX(@Separator, @Str)
    WHILE (@CommaPos <> 0)
    BEGIN
    SET @Value = SUBSTRING(@Str, 1, @CommaPos - 1)
    INSERT INTO #T (Mile) VALUES (@Value)
    SET @Str = STUFF(@Str, 1, @CommaPos, '')
    SET @CommaPos =  CHARINDEX(@Separator, @Str)
    END

    DECLARE cur_t SCROLL CURSOR FOR SELECT DISTINCT Mile FROM #T ORDER BY Mile
    OPEN cur_t
    FETCH FIRST FROM cur_t INTO @Value
    WHILE @@FETCH_STATUS = 0
    BEGIN
    IF (@Result = '' )
    SET @Result = @Value
    ELSE
&n

[1] [2] 下一页


关键词:数据库
阅读本站更多关于:“在Transact-SQL中处理字符串数据 - aShun008的文章”的文章>>>>
作者:aShun008… 文章来源:CSDN
[EB技术]录入:北极星    责任编辑:北极星 

  窄告信息
电子商务辩论台
网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
电子商务模式网站(www.CanEb.com)版权与免责声明:
① 本网转载其他媒体、网站文章是为传播更多的信息,此类文章不代表本网观点,也不对其真实性负责,本网不承担此类文章侵权行为的连带责任。
② 在本网论坛(BBS)博客(Blog)网络硬盘(WebDisk)上发表言论或上传、收藏文件者,责任自负。
③ 如您因版权等问题需要与本网联络,请在30日内联系 caneb_com@yahoo.com.cn
④ 凡本网原创文章(包括论坛、博客等),欢迎转载,但务必注明来自本网,且需注明引用网址。
焦点图片
今日博客
电子商务模式网站意见反馈留言板