选择给定列中包含“_”的所有行

时间:2017-04-25 22:43:55

标签: sql-server

我想从SQL中选择给定列中具有“_”字符的行。 当我尝试运行此查询时,它返回表中的所有行

SELECT * FROM [Attribute] where LibID=26 and Name like '%_%'

但以下查询产生了我需要的内容

SELECT * FROM [Attribute] where LibID=26 and CHARINDEX('_', Name) > 0

为什么我的第一个查询未返回预期结果。也许我错过了一些关于SQL的信息/知识。

2 个答案:

答案 0 :(得分:3)

LIKE函数使用_(下划线)字符来匹配任何字符。如果你想将它用作下划线,你需要逃避它:

SELECT * 
FROM [Attribute] 
where LibID=26 
and Name like '%[_]%'

答案 1 :(得分:1)

下划线是LIKE查询中的通配符。它表示任何单个字符。

要使用LIKE语法,请使用:

SELECT * FROM [Attribute] where LibID=26 and Name like '%[_]%'