我正在使用 MSSQL 数据库,并且有一个名为 UserDepartments 的表,其中包含分配给一个用户的所有部门 ID,如下所示
UserID | DepartmentID
1 | 220
1 | 330
1 | 210
1 | 100
2 | 330
2 | 440
3 | 550
我想要创建一个该表的 View ,如下所示
UserID | Departments
1 | 220, 330, 210, 100
2 | 330, 440
3 | 550
是否可以使用 MSSQL 来完成此操作?
最佳答案
试试这个 -
查询:
DECLARE @temp TABLE
(
UserID INT
, DepartmentID INT
)
INSERT INTO @temp (UserID, DepartmentID)
VALUES
(1, 220),(1, 330),
(1, 210),(1, 100),
(2, 330),(2, 440),
(3, 550)
SELECT
t.UserID
, DepartmentID = STUFF((
SELECT ', ' + CAST(DepartmentID AS VARCHAR(10))
FROM @temp t2
WHERE t2.UserID = t.UserID
FOR XML PATH(''), TYPE).value('.', 'VARCHAR(1024)'), 1, 2, '')
FROM (
SELECT DISTINCT UserID
FROM @temp
) t
输出:
UserID DepartmentID
----------- -----------------------------
1 220, 330, 210, 100
2 330, 440
3 550
关于sql-server - MSSQL : How to create a VIEW that shows column as comma separated value,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17668418/