我有表X(X_ID,X_Name)是1-M与表Y(Y_ID,Y_Value)
表X:
X_ID X_Name
---- ------
12 foo
14 foo2
16 foo3
Run Code Online (Sandbox Code Playgroud)
表Y:
X_ID Y_Value
---- -------
12 A
12 B
14 C
14 D
14 E
16 F
16 G
Run Code Online (Sandbox Code Playgroud)
如何使用T-Sql获得以下结果?
X_ID X_Name Y_Value
---- ------ ------
12 foo A,B
14 foo2 C,D,E
16 foo3 F,G
Run Code Online (Sandbox Code Playgroud)
谢谢
可能的重复:
SQL Server:我可以用逗号将多行分隔为一列吗?
如果记录数大于 1,我想将某个字段中的所有记录合并到一个单元格中(每个值来自另一列)。例如,如果我有以下代码
SELECT city, count(zoo name) AS 'count of zoo name' FROM mytable
Run Code Online (Sandbox Code Playgroud)
它将产生以下结果

原来的表是这样的

由于亚特兰大和纽约都有不止一个动物园,而东京只有一个动物园,所以最终的结果应该是这样的

我该怎么做呢?我考虑过使用 PIVOT 构造,但这会为每个可能的值创建新列。我还必须将每个可能的动物园名称的名称写入 PIVOT。这将是一种糟糕的形式,因为实际数据具有比上述更多的“动物园名称”可能值。
这是当前可以每天更改的结果
(int) (nvarchar)
Number Grade
--------------
1 a
1 c
2 a
2 b
2 c
3 b
3 a
Run Code Online (Sandbox Code Playgroud)
我需要帮助的是在下面实现这个结果.
Number Grade
-----------------
1 a, c
2 a, b, c
3 b, a
Run Code Online (Sandbox Code Playgroud) 我有一个查询返回我的输出.
(结果不是所有时间都不一样,意味着它有时会给出3类,有时8类等等.)
CategoryName
Test1
Test2
Test3
Run Code Online (Sandbox Code Playgroud)
现在我希望商店程序应该以逗号分隔格式返回这些日期.例如,输出字符串应该类似于:Test1,Test2,Test3
你能告诉我怎样才能实现这个目标?