TSQL-使用CHARINDEX找不到Unicode字符

时间:2018-07-09 12:07:15

标签: sql-server charindex

我无法使用TSQL在字符串中找到特殊的Unicode字符-CHARINDEX

externalIPs

你有什么主意吗? 在此先感谢。

1 个答案:

答案 0 :(得分:4)

U+202D LEFT-TO-RIGHT OVERRIDE是一种定向字符,大多数排序规则比较都将忽略它。要解决此问题,请显式使用二进制排序规则:

SELECT CHARINDEX(@n, @str COLLATE Latin1_General_BIN2)

对于PATINDEX,同样,如果您要小心地使用Unicode常量(但是我还是会拼写NCHAR,因为不可见的字符会令人困惑):

select patindex( N'%‭%'  ,@str COLLATE Latin1_General_BIN2)