gpt4 book ai didi

sql - 在 sql server 中将 % 通配符与 ' in ' 运算符一起使用

转载 作者:行者123 更新时间:2023-12-04 23:38:58 25 4
gpt4 key购买 nike

我有一个存储过程,我将逗号分隔值列表作为 @At1 传递

Create spGetProducts @At1 VARCHAR(200)
begin
select * from tblProducts where Category1 IN (SELECT * FROM CSVToTable(@At2))
end

函数 CSVToTable 基本上采用逗号分隔值并将它们放入表中。

问题是我想对 IN 运算符使用 LIKE 通配符,但这不起作用。

因此,如果我在 Category1 行中有一个测试,并且 CSVTOTABLE 将返回值“es”,那么它将选择该行,就像我有 %es% 一样。基本上我只想在使用 in 运算符时在逗号分隔值中使用百分号。

我使用的是 sql server 2012

编辑

我的 CSVTABLE 返回一个列表,每一行都有一个逗号分隔值。

最佳答案

IN 重写为更通用的 EXISTS:

select *
from tblProducts p
where exists (
select *
from CSVToTable(@At2)
where Category1 LIKE (SomeExpressionInvolvingTheResultFromCSV)
)

出于缓存原因,您可能希望首先将结果从 CSVToTable 拉入表变量或临时表。

关于sql - 在 sql server 中将 % 通配符与 ' in ' 运算符一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20860399/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com