如何在sql server 2005中使用具有多个值的条件?

Use*_*404 10 sql t-sql sql-server sql-server-2005 like-keyword

我需要根据nvarchar(1000)列中的一些文本匹配过滤出记录.表有超过40万条记录并且还在增长.目前,我正在使用Like条件: -

SELECT 
    *
FROM
    table_01
WHERE
    Text like '%A1%'
    OR Text like '%B1%'
    OR Text like '%C1%'
    OR Text like '%D1%'
Run Code Online (Sandbox Code Playgroud)

有没有首选的工作?

Joh*_*ock 8

SELECT 
    *
FROM
    table_01
WHERE
    Text like '%[A-Z]1%'
Run Code Online (Sandbox Code Playgroud)

这将检查文本是否包含A1,B1,C1,D1,......

参考在SQL Server中使用Like条件

  • 我有一种感觉,你已经采用了一些字面上的示例代码. (5认同)

小智 5

如果您知道子字符串的确切位置,则可以尝试以下操作:

SELECT 
    *
FROM
    table_01
WHERE
    SUBSTRING(Text,1,2) in ('B1','C1','D1')
Run Code Online (Sandbox Code Playgroud)


Lam*_*mak 0

如果您可以在表的该列上创建一个FULLTEXT INDEX(假设对性能和空间进行大量研究),那么您可能会看到文本匹配性能的巨大改进。您可以访问此链接查看FULLTEXT SEARCH是什么,并访问此链接查看如何创建FULLTEXT INDEX.