【发布时间】:2019-12-12 13:22:56
【问题描述】:
我有一个过程可以根据它们是否在逗号分隔的字符串中来查找表中的所有记录。
DECLARE @PMIDList NVARCHAR(max) = '31282781,31226541,30518502,30262330,30154192,29781323,29222269,28516439,28314698,27130328,26031546,25963431'
SELECT PMID
FROM ADMIN_API_Pubs_Members
INNER JOIN STRING_SPLIT(@PMIDList,',') ON value = dbo.ADMIN_API_Pubs_Members.PMID
但是我想稍微改变一下,找到不在表中的逗号分隔字符串中的值。
我加了
SELECT PMID
FROM ADMIN_API_Pubs_Members
INNER JOIN STRING_SPLIT(@PMIDList,',') ON value = dbo.ADMIN_API_Pubs_Members.PMID
WHERE ADMIN_API_Pubs_Members.PMID IS NULL
但是我怎样才能让逗号字符串值显示为值呢?我是否需要将所有值放入 tmp 表中,然后进行联合查找 NULL 记录?我正在使用 SQL Server 2016。
【问题讨论】:
-
谢谢大家——当他们都做我需要的事情时,我怎么能选择一个最佳答案,但只是有点不同。你们每个人都真的帮助了我。谢谢。我会和三个人一起玩一个晚上。
-
您可以通过投票来表彰他们。你可以选择表现最好的那个。或西部最快的枪(我认为这是 Ed Bangga)。或者你最喜欢的那个......这完全取决于你:-)
标签: sql tsql stored-procedures split sql-server-2016