首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用逗号分隔的nvchar ids过滤ids

用逗号分隔的nvchar ids过滤ids
EN

Stack Overflow用户
提问于 2019-09-05 05:15:11
回答 2查看 129关注 0票数 1

假设我有一个简单的表,其中包含Id (主键)和Name行。现在我有了一个逗号分隔的ids列表,类似于- 2,5,6。我只想取这些逗号分隔的id,然后将每个id与现有数据进行比较。并且只返回那些唯一的ids,这意味着数据库中不存在。请注意,输出也应该是相同的输入格式,也就是逗号分隔格式。我正在使用Microsoft SQL server 2017。

我已经试过的是:

代码语言:javascript
复制
select * from DemoTable where Id 2,5,6 not in DemoTable

但这似乎不正确的语法。我怎么才能修好它?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-09-05 05:23:01

你可以用这个。在这个问题上你需要从另一个角度看。我觉得很有趣。

实际上,您有一个id作为基的列表,您希望从不在某个表中的字符串中排除id。因此,首先我们需要找到id的列表,然后我们将它们排除在表的id中,以得到我们想要的结果。最后,您可以使用stuffstring_agg将最终结果转换为,分隔的字符串。

代码语言:javascript
复制
select Value from (
select value from string_split('1,2,3',',')) as t 
where t.value not in (select id from demotable)

您可以检查此链接的工作小提琴。小提琴

票数 2
EN

Stack Overflow用户

发布于 2019-09-05 05:40:23

这是你的问题。

代码语言:javascript
复制
select string_agg(val, ',') as result
from (
    select value as val from string_split('1,2,3',',')) as t 
where t.val not in (select id from tableA)

结果:(逗号分隔)

代码语言:javascript
复制
1,2,3
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57798814

复制
相关文章

相似问题

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