首页 > 解决方案 > 从逗号分隔的列中选择一个值

问题描述

我在 SQL Server 中有两个包含用户和项目的表。我必须从另一个表中获取逗号分隔列的用户名,如下所示:

桌子tbl_Users

userID   |    userName
---------+------------
1        |  Thomas
2        |  Jack
3        |  James
4        |  Jones

tbl_Projects

projectID   |  projectName  | projectUsers
------------+---------------+-------------
5850        |  New Project  |    1,3
5895        |Another Project|    1,2,4

我需要从下面的全名projectUsers中输出 5895 :tbl_Projectstbl_Users

userID   |   userName
---------+-----------
1        |  Thomas
2        |  Jack
4        |  Jones

如果有人可以帮助我做到这一点,我会更高兴。

标签: sql-servercomma

解决方案


感谢@dcp,我得到了答案,如果其他人需要,我很乐意更新。

SELECT
    c.[userID] AS userID,
    c.[userName] AS userName
FROM
    dbo.tbl_Projects AS T
    outer apply STRING_SPLIT(T.[projectUsers], ',') s
    left join dbo.tbl_Users as c on c.userID = s.value
where T.[projectID] = '5895'

推荐阅读