如何比较具有多个值的 varchar 列
How to compare a varchar column with multiple values
有没有办法将列与表达式列表进行比较?这是我当前的代码:
WHERE
[Description] like 'c:DEC%'
or [Description] like 'c:DTI%'
or [Description] like 'c:DCT%'
or [Description] like 'c:DTB%'
or [Description] like 'c:DTX%'
我想要这样的东西:
Where [Description] like ('c:DTI%','c:DCT%','c:DTB%','c:DTX%')
我建议这最好通过关联而不是多个硬编码条件来实现,尤其是当您有数百个条件时!
您可以将 table - 永久性或 table-valued-parameter
传递给您的过程,并使用 exists
实施过滤
from MyTable t
where ...
and exists (select * from LookupTable l where t.[description] like l.MatchText)
把它放在临时的table
create table #temp
(
descript varchar(100)
)
insert into #temp (descript) values
('c:DTI%') , ('c:DCT%'), ('c:DTB%'), ('c:DTX%');
SELECT *
FROM yourtable d
INNER JOIN #temp t ON d.[Description] LIKE t.descript
有没有办法将列与表达式列表进行比较?这是我当前的代码:
WHERE
[Description] like 'c:DEC%'
or [Description] like 'c:DTI%'
or [Description] like 'c:DCT%'
or [Description] like 'c:DTB%'
or [Description] like 'c:DTX%'
我想要这样的东西:
Where [Description] like ('c:DTI%','c:DCT%','c:DTB%','c:DTX%')
我建议这最好通过关联而不是多个硬编码条件来实现,尤其是当您有数百个条件时!
您可以将 table - 永久性或 table-valued-parameter
传递给您的过程,并使用 exists
from MyTable t
where ...
and exists (select * from LookupTable l where t.[description] like l.MatchText)
把它放在临时的table
create table #temp
(
descript varchar(100)
)
insert into #temp (descript) values
('c:DTI%') , ('c:DCT%'), ('c:DTB%'), ('c:DTX%');
SELECT *
FROM yourtable d
INNER JOIN #temp t ON d.[Description] LIKE t.descript