如何在模式匹配中添加破折号

时间:2013-05-24 19:11:17

标签: sql-server

这有效:

select Name
from Table
WHERE Name like '%[^0-9A-Za-z]%'

但现在我还需要将短划线字符添加到标准中。

2 个答案:

答案 0 :(得分:8)

使用

...ESCAPE '\'

e.g。

WHERE Name like '%[^0-9A-Za-z\-]%' ESCAPE '\'

将最终的“ - ”视为文字。

答案 1 :(得分:4)

除非它是范围的一部分,否则连字符不是LIKE模式中的特殊字符,因此您可以将它添加到您的模式中,例如:

select 
        [char]
from
    (
    select 'a' as 'char' union 
    select '-' union 
    select '$' union
    select '7'
    ) dt
where 
    [char] like '%[^A-Za-z0-9-]%'