网络编程
位置:首页>> 网络编程>> 数据库>> 解析SQL Server 2005 溢用之:合并列值(2)

解析SQL Server 2005 溢用之:合并列值(2)

作者:zise  发布时间:2009-01-23 14:08:00 

标签:

2. 新的解决方法

示例数据

DECLARE @t TABLE(id int, value varchar(10))

INSERT @t SELECT 1, 'aa'

UNION ALL SELECT 1, 'bb'

UNION ALL SELECT 2, 'aaa'

UNION ALL SELECT 2, 'bbb'

UNION ALL SELECT 2, 'ccc'

-- 查询处理

SELECT *

FROM(

    SELECT DISTINCT

        id

    FROM @t

)A

OUTER APPLY(

    SELECT

        [values]= STUFF(REPLACE(REPLACE(

            (

                SELECT value FROM @t N

                WHERE id = A.id

                FOR XML AUTO

            ), '<N value="', ','), '"/>', ''), 1, 1, '')

)N

/*--结果

id          values

----------- ----------------

1           aa,bb

2           aaa,bbb,ccc

(2 行受影响)

--*/

 
注: 合并与分拆的CLR, sql2005的示例中有:

在安装sql 2005的示例后,默认安装目录为 drive:\Program Files\Microsoft SQL Server\90\Samples\Engine\Programmability\CLR\StringUtilities中。

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com