我在SQL服务器中得到了请求,如下所示

时间:2015-02-15 14:52:01

标签: sql-server

例如我有像

这样的表格
Id      name    age   
01      Praveen  20 
02      mahesh   40 
03      phani    50

我希望看到像

这样的输出
01,02,03 

2 个答案:

答案 0 :(得分:1)

使用For xml path()技巧来执行此操作。考虑到ID属于integer类型,请删除convert函数

SELECT Stuff((SELECT ',' + CONVERT(VARCHAR(20), Id)
              FROM   Yourtable
              FOR xml path('')), 1, 1, '') 

答案 1 :(得分:0)

使用cursor获取每个id并将它们连接成一个字符串

DECLARE cur cursor FAST_FORWARD READ_ONLY
FOR   
 SELECT id 
FROM tbl
 OPEN cur
DECLARE @x  varchar(10)=''
 DECLARE @d int
 FETCH NEXT FROM cur INTO @d
 WHILE @@FETCH_STATUS=0
 BEGIN 
SET @x=@x+convert(varchar(10),@d)+','
FETCH NEXT FROM cur  INTO @d
END
Close  cur 
DEALLOCATE cur
SELECT left(@x,len(@x)-1)