正则表达式只允许从a到z,空格和破折号( - )的字符。
我的示例脚本有什么问题?
DECLARE @firstNameRegex VARCHAR(100)='%[^a-z -]%';
DECLARE @firstName VARCHAR(100) = 'Çranko'
IF @firstName LIKE @firstNameRegex
BEGIN
PRINT 'YES'
END
ELSE
BEGIN
PRINT 'NO'
END
似乎在做LIKE时将Ç转换为C并且它通过,但不应该。 还有一点需要注意,COLLATION设置为SQL_Latin1_General_Cp1251_CS_AS。
有没有人知道如何解决这个问题?
答案 0 :(得分:1)
非常确定范围正在打破你想要的东西 把整个字母表放在
中'%[^ abcdefghijklmnopqrstuvwxyz - ]%'
我只用'%[^ cranko - ]%'测试,但它对我有用