使用Distinct和COALESCE一起使用变量

时间:2014-07-15 16:26:46

标签: sql sql-server database

我有一张包含以下数据的表格

column1   column2

DIU02   3D ITEM MAINTENANCE
DIU02   DISTRIBUTION ITEM UPDATE APPLICATION
DIU02   DIU - Distribution Item Update

我想要独特的DIU02,所有数据都使用逗号分隔单列。

用于SQL Server数据库

以下是查询

DECLARE @Data VARCHAR(MAX)

SELECT @Data = COALESCE(@Data + ',', '') + column2
FROM Table
WHERE column1= 'DIU02'

我想只获取不同的数据,我使用了不同的关键字,但我只得到一个。

请帮忙!

3 个答案:

答案 0 :(得分:2)

SELECT @Data = COALESCE(@Data + ',', '') + column2
FROM (
  SELECT DISTINCT column2
  FROM Table
  WHERE column1= 'DIU02'
) t

答案 1 :(得分:0)

我打赌你正在寻找那个(MS SQL):

DECLARE @List VARCHAR(8000)

SELECT @List = COALESCE(@List + ',', '') + CAST(column2 AS VARCHAR)
FROM   yourtable
WHERE  column1 = 'DIU02'

SELECT @List 

SQL Fiddle

答案 2 :(得分:0)

如果我理解你,也许这就是

select  col1,Stuff=Stuff((SELECT ',' + col2  FROM t t1 WHERE t1.col1=t.col1   

 FOR XML PATH (''))
             , 1, 1, '' )
from t
GROUP BY col1

Fiddle