【发布时间】:2015-03-19 14:18:26
【问题描述】:
我目前有一个三列的表格; Org、Group ID 和 Role。
可以忽略名为Org 的列。
我一直在尝试做的是根据Group ID 对它们进行分组,并将属于同一Group ID 的每个Roles 拆分为单个列。
到目前为止,我可以将记录分组并将同一组的Roles放在同一列中。
我使用了以下脚本:
Select
[Group ID],
Substring((Select ',' + [Role]
From [dbo].[ASA_test] B
Where B.[Group ID] = A.[Group ID]]
For XML Path('')), 2, 8000) As List
From
[dbo].[ASA_test] A
Group By
[Group ID]
后来我创建了一个临时表变量,并在其中插入了上面的 SQL,以便之后在用户定义的函数中使用这个变量来获得结果。
请看下面:
DECLARE @MyTempTableVariable TABLE
(
GroupID int,
Role nvarchar(255)
)
INSERT INTO @MyTempTableVariable
Select
[Group ID],
Substring((Select ',' + [Role]
From [dbo].[ASA_test] B
Where B.[Group ID] = A.[Group ID]]
For XML Path('')), 2, 8000) As List
From
[dbo].[ASA_test] A
Group By
[Group ID]
但是我无法继续前进,因为它没有按预期工作。
有人可以帮忙吗?请注意,记录的总数不受我在此处发布的内容的限制。
谢谢!
【问题讨论】:
标签: sql sql-server csv user-defined-functions