[英]How to use SQL LIKE condition with multiple values in PostgreSQL?
[英]How to use like condition with multiple values in sql server 2005?
我需要根据nvarchar(1000)列中的一些文本匹配过滤出记录。 表有超过40万条记录并且还在增长。 目前,我正在使用Like条件: -
SELECT
*
FROM
table_01
WHERE
Text like '%A1%'
OR Text like '%B1%'
OR Text like '%C1%'
OR Text like '%D1%'
有没有首选的工作?
SELECT
*
FROM
table_01
WHERE
Text like '%[A-Z]1%'
这将检查文本是否包含A1,B1,C1,D1,......
如果您知道子字符串的确切位置,则可以尝试以下操作:
SELECT
*
FROM
table_01
WHERE
SUBSTRING(Text,1,2) in ('B1','C1','D1')
我需要这样做,以便我可以在SQL Server Profiler跟踪模板中的DatabaseName
列的过滤器中允许两个不同的数据库。
您所能做的就是填写Like
子句的正文。
使用John Hartscock的答案中的引用,我发现like子句使用了一种有限的正则表达式模式。
对于OP的情况, MSMS有解决方案 。
假设我想要数据库ABCOne,ABCTwo和ABCThree,我想出了每个角色基本上是独立的白名单:
Like ABC[OTT][NWH][EOR]%
这可以很容易地扩展到任何字符串集。 它不会是铁定的,最后的模式也会与ABCOwe,ABCTnr或ABCOneHippotamus相匹配,但是如果你过滤了一组有限的可能值,那么你很有可能让它成功。
您也可以使用[^]
运算符来显示不可接受的字符的黑名单。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.