Welcome to itblog

Every Day In Every Way I Am Getting Better And Better~

itblogID:itblog
57206次访问,排名1804好友0人,关注者0
itblog的文章
原创 62 篇
翻译 0 篇
转载 53 篇
评论 13 篇
itblog的公告
晕,没有一个合适的公告!
最近评论
zjfei:有点晕
都没用过
vvukqr:wow power leveling
lizh0103:还是不清楚
reallylovesky:不错很好,谢谢!
jimar:你所说的不算复杂,估计你不是在工厂上班
文章分类
收藏
    相册
    人个相册
    BLOG友情链接
    存档
    软件项目交易
    订阅我的博客
    XML聚合  FeedSky
    订阅到鲜果
    订阅到Google
    订阅到抓虾
    订阅到BlogLines
    订阅到Yahoo
    订阅到GouGou
    订阅到飞鸽
    订阅到Rojo
    订阅到newsgator
    订阅到netvibes

    转载 【交流】SQL 2005溢用之:分拆列值 收藏

    新一篇: 【交流】SQL 2005溢用之:合并列值  | 旧一篇: 在SQL中有没有办法,不通过游标,把一个列的字符全部连起来

    有表tb, 如下:
    id          values
    ----------- -----------
    1           aa,bb
    2           aaa,bbb,ccc

    欲按,分拆values列, 分拆后结果如下:
    id          value
    ----------- --------
    1           aa
    1           bb
    2           aaa
    2           bbb
    2           ccc

    之前的老办法, 一般是使用临时表
    SELECT TOP 8000 id = IDENTITY(int, 1, 1) INTO # FROM syscolumns a, syscolumns b
    SELECT A.id, SUBSTRING(A.[values], B.id, CHARINDEX(',', A.[values] + ',', B.id) - B.id)
    FROM tb A, # B
    WHERE SUBSTRING(',' + A.[values], B.id, 1) = ','
    DROP TABLE #

    -- 在sql 2005中, 借用xml, 可以简单地一句来实现这个功能

    -- 示例数据
    DECLARE @t TABLE(id int, [values] varchar(100))
    INSERT @t SELECT 1, 'aa,bb'
    UNION ALL SELECT 2, 'aaa,bbb,ccc'

    -- 查询处理
    SELECT A.id, B.value
    FROM(
    SELECT id, [values] = CONVERT(xml,
    '<root><v>' + REPLACE([values], ',', '</v><v>') + '</v></root>')
    FROM @t
    )A
    OUTER APPLY(
    SELECT value = N.v.value('.', 'varchar(100)')
    FROM A.[values].nodes('/root/v') N(v)
    )B

    /*--结果
    id          value
    ----------- --------
    1           aa
    1           bb
    2           aaa
    2           bbb
    2           ccc

    (5 行受影响)
    --*/

     

    发表于 @ 2006年06月05日 16:36:00|评论(loading...)|编辑

    新一篇: 【交流】SQL 2005溢用之:合并列值  | 旧一篇: 在SQL中有没有办法,不通过游标,把一个列的字符全部连起来

    评论:没有评论。

    发表评论  


    当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
    Csdn Blog version 3.1a
    Copyright © itblog