sql-server - MSSQL : How to create a VIEW that shows column as comma separated value

标签 sql-server view

我正在使用 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/

相关文章:

mysql - Rails Active Admin PUT 不更新 bool 值 (SQL Server)

mysql - 具有右连接的 SQL View

android - AdMob - 未加载 admob 横幅时出现空白

c# - Entity Framework Core 3.0 查询导致 "SqlException: ' Execution Timeout Expired'"和 tempdb 变满。适用于 EF Core 2.2.6

sql - 从字符串中选择列

sql-server - 使用 SQL 删除 XML 文件中的空节点

sql - TSQL - 如何找到日期之间缺失的月份?

javascript - Backbone 的 View 'events' 属性是否仅适用于 DOM 事件?

sql-server - SQL View : Join tables without causing the data to duplicate on every row?

reactjs - 为什么react只有View层?