首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从SPLIT_STRING查找表中不存在的值

问从SPLIT_STRING查找表中不存在的值
EN

Stack Overflow用户
提问于 2019-08-05 10:07:45
回答 4查看 113关注 0票数 1

我有一个过程,它将根据表中的所有记录是否在逗号分隔的字符串中查找这些记录。

代码语言:javascript
复制
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

但是,我想稍微改变一下,找出逗号分隔的字符串中的值,这些值不在表中。

我添加了

代码语言:javascript
复制
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

但是怎样才能让逗号字符串值显示为值呢?我是否需要将所有值放入一个临时表格中,然后执行联合操作来查找空记录?我使用的是SQL Server 2016。

EN

回答 4

Stack Overflow用户

发布于 2019-08-05 10:13:36

这是您的查询

代码语言:javascript
复制
SELECT * FROM (
 SELECT t1.value, PMID 
 FROM  STRING_SPLIT(@PMIDList,',') t1
 LEFT JOIN ADMIN_API_Pubs_Members ON value = dbo.ADMIN_API_Pubs_Members.PMID
) t2 WHERE t2.PMID IS NULL
票数 3
EN

Stack Overflow用户

发布于 2019-08-05 10:17:05

如果你想得到那些存在于逗号分隔值而不是存在于表中的值,你可以用这种方式来获取数据。

代码语言:javascript
复制
select '31282781' as ID into #temp union all 
select '31226541' as ID union all 
select '30518502' as ID union all 
select '30262330' as ID  

DECLARE @PMIDList NVARCHAR(max) = '31282781,31226541,30518502,30262330,30154192,29781323,29222269,28516439,28314698,27130328,26031546,25963431'

SELECT  value as CSVdata   
FROM   STRING_SPLIT(@PMIDList,',') t2 
left join #temp t  on t2.value = t.ID 
where t.ID is null 

输出:

代码语言:javascript
复制
 CSVdata
30154192
29781323
29222269
28516439
28314698
27130328
26031546
25963431
票数 3
EN

Stack Overflow用户

发布于 2019-08-05 10:15:46

一种选择是使用NOT EXISTS ()

代码语言:javascript
复制
SELECT *
FROM   STRING_SPLIT(@PMIDList,',') v
WHERE  NOT EXISTS
       (
           SELECT *
           FROM   ADMIN_API_Pubs_Members x
           WHERE  x.PMID  = v.VALUE
       )
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57351484

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档