与CONTAINS类似的功能

时间:2012-01-11 15:02:18

标签: sql sql-server sql-server-2008

您好我正在寻找一个类似于CONTAINS函数的函数,但是它不需要对该字段进行全文索引。基本上我有一个字段,其中包含一些由ABC DEF GHI之类的空格分隔的代码。我想运行一个查询,看看DEF是否在该字段中。我该怎么做呢?

3 个答案:

答案 0 :(得分:6)

听起来你可能想要LIKE运营商。查询看起来像这样:

SELECT * FROM someTable WHERE someField LIKE '%DEF%'

答案 1 :(得分:2)

WHERE YourField like '% DEF %' 
OR YourField LIKE '% DEF'
OR yourField like 'DEF %' 
OR YourField = 'DEF'

涵盖它在中间被空格包围的情况,或者在结尾/开始 - 并且语句的最后边缘情况只是没有空格的值。如果您的值为'ADEFB',则故意使用/确保空格,例如:一个代码在另一个内部。

表现不会很好。

答案 2 :(得分:2)

看看CHARINDEX。请注意,我在搜索列的开头和结尾添加了一个空格,以说明搜索字符串在列表中的第一个或最后一个的情况。

SELECT *
    FROM YourTable
    WHERE CHARINDEX(' DEF ', ' ' + YourColumn + ' ') <> 0;