带破折号和下划线的SQL Server通配符语句问题

时间:2019-06-12 14:29:35

标签: sql sql-server wildcard

我需要在自由文本列中查询包含rm -fr install-的字符串。该列定义为_-具有很多字符的非常大的列。

这是一个字符串:'%OTHER MIE-BMI%的说明'

我尝试使用varchar(8000)-没有结果。

我也尝试使用LIKE '%OTHER MIE-Explanation of BMI%'-没有结果。

尝试LIKE '%OTHER MIE-Explanation of BMI%' ESCAPE '-'-我收到以下错误消息:

  

不能在表或索引视图'#TEMP1'上使用CONTAINS或FREETEXT谓词,因为它不是全文索引。

请帮助!

3 个答案:

答案 0 :(得分:2)

您的问题不可复制。

我运行了此测试:

DECLARE @Tbl TABLE (Col1 varchar(max));

INSERT INTO @Tbl (Col1) VALUES ('%OTHER MIE-Explanation of BMI%')    

SELECT * FROM @Tbl
WHERE Col1 LIKE '%OTHER MIE-Explanation of BMI%'

结果是:

Col1
%OTHER MIE-Explanation of BMI%

如果没有结果,那么您认为在表中的字符串实际上就不在那里。

答案 1 :(得分:0)

尝试一下:

col like '%OTHER MIE_Explanation of BMI%'

或:

col like '%OTHER MIE%Explanation of BMI%'

连字符以不同的形式出现,其中最常见的是破折号和破折号。我的猜测是在那里使用了一些更晦涩的破折号。

答案 2 :(得分:-1)

字符串实际上在那儿。我将其转储到Excel中并分离(TEXT TO COLUMNS),并且字符串确实存在。这是一个很大的自由文本字段。字符串在那里。