stuff(select ',' + fieldname from tablename for xml path('')),1,1,'') 这一整句的作用是将多行fieldname字段的内容串联起来,用逗号分隔。 例如表 fieldname ----------- AAA BBB CCC 串联之后就是字符串: AAA,BBB,CCC for xml path是SQL Server 2005以后版本支持的一种生成XML的方式。具体如何使用,请参考联机丛书。 stuff函数的作用是去掉字符串最前面的逗号分隔符。 ---------------------------------------------------------------
在sql server 2000中只能用函数解决
create
table
tb(id
int
, value
varchar
(10))
insert
into
tb
values
(1,
'aa'
)
insert
into
tb
values
(1,
'bb'
)
insert
into
tb
values
(2,
'aaa'
)
insert
into
tb
values
(2,
'bbb'
)
insert
into
tb
values
(2,
'ccc'
)
go
--1. 创建处理函数
CREATE
FUNCTION
dbo.f_strUnite(@id
int
)
RETURNS
varchar
(8000)
AS
BEGIN
DECLARE
@str
varchar
(8000)
SET
@str =
''
SELECT
@str = @str +
','
+ value
FROM
tb
WHERE
id=@id
RETURN
STUFF(@str, 1, 1,
''
)
END
GO
-- 调用函数
SELECt
id, value = dbo.f_strUnite(id)
FROM
tb
GROUP
BY
id
go
id value
----------- -----------
1 aa,bb
2 aaa,bbb,ccc