SQL Server:PATINDEX使用模式

时间:2015-11-13 10:49:48

标签: sql sql-server

我使用PATINDEX替换字符串中的杂散字符(表格中的列)。

select PATINDEX('%[^A-Z,a-z0-9 -()&_/\.]%', 'This has a stray character$') 

我很困惑为什么结果是0(我期待27):$不在我想保留的模式中。任何见解?

2 个答案:

答案 0 :(得分:1)

事情是短划线-用于模式匹配。所以你必须逃脱它:

select PATINDEX('%[^A-Z,a-z0-9 \-()&_/\.]%', 'This has a stray character$') 

答案 1 :(得分:0)

我会逃避所有特殊角色:

select PATINDEX('%[^A-Z,a-z0-9 \-\(\)\&\_\/\\\.]%', 'This has a stray character$') 

LiveDemo