sql-server - 从逗号分隔的列中选择一个值
问题描述
我在 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_Projects
tbl_Users
userID | userName
---------+-----------
1 | Thomas
2 | Jack
4 | Jones
如果有人可以帮助我做到这一点,我会更高兴。
解决方案
感谢@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'