如何将列a计入SQL Server中的列b?

时间:2015-05-11 06:17:24

标签: sql-server

我将这些数据放到SQL Server上的testDB中:

enter image description here

我想要写查询从表中获取此数据:

1 --------> 3
2 --------> 2

我该怎么做?

感谢。 如何从上表中获取这些数据?

1----->A,B,C
2----->D,E

2 个答案:

答案 0 :(得分:0)

一个简单的GROUP BY可以解决问题。

SELECT
    columnX,
    COUNT(*)
FROM <YourTable>
GROUP BY columnX

对于另一个问题:

SELECT
    columnX,
    STUFF((
        SELECT ',' + columnY
        FROM YourTable
        WHERE columnX = t.columnX
        FOR XML PATH(''), TYPE).value('.', 'VARCHAR(MAX)')  
    ,1 ,1 , '')
FROM YourTable t
GROUP BY t.columnX

答案 1 :(得分:0)

或者在sql server中使用Window函数:
案例1:

 select count(column x) over(partition by column x) as cnt,
    column x,
    column y from table

您可以使用此FOR XML PATH&amp;案例2的STUFF技巧:

SELECT
    b.columnX,
    COUNT(*) as cnt,STUFF( (SELECT ',' + a.column y
                             FROM table a 
                             where a.column x = b.coulmn x
                             FOR XML PATH('')), 
                            1, 1, '')
FROM table b
GROUP BY b.columnX