求一条SQL代码?谢谢谢
表bevyman
bevy_id bevy_man bevy_sort
1 小华 2
2 小朱 2
3 小水 2
... ... ...
如何output 为字符串: "小华,小朱,小水 "
------解决方案--------------------参考:
CREATE TABLE A(id INT,country VARCHAR(100))
INSERT A
SELECT 1, '中国;日本;韩国 ' UNION ALL
SELECT 2, '美国;意大利;法国 ' UNION ALL
SELECT 3, '德国 '
SELECT * FROM A
-- 建立一个辅助的临时表就可以了
SELECT TOP 8000 id = identity(int,1,1)
INTO # FROM syscolumns a, syscolumns b
SELECT
A.ID,
COUNTRY = SUBSTRING(A.COUNTRY, B.ID, CHARINDEX( '; ', A.COUNTRY + '; ', B.ID) - B.ID)
FROM A, # B
WHERE SUBSTRING( '; ' + a.COUNTRY, B.id, 1) = '; '
ORDER BY 1,2
GO
DROP TABLE A,#
id country
----------- ----------------------------------------------------------------
1 中国;日本;韩国
2 美国;意大利;法国
3 德国
(所影响的行数为 3 行)
------解决方案--------------------不好意思,忘了逗号,改正如下:
declare @a varchar(100)
set @a= ' '
select @a=@a+bevy_man+ ', ' from tablename
select left(@a,len(@a)-1) as output
------解决方案--------------------declare @a varchar(100)
set @a= ' '
select @a=@a+isnull(bevy_man, ' ')+ ', ' from tablename
select left(@a,len(@a)-1) as output