使用patindex来查找 某个字符后的双引号(排除/),表达式'%[^/]["]%',一般字符串都没问题,如上述语句中的前2个查询字段。
但碰到 口 这种妖怪字符崩溃了,没法匹配,该字符的len等于2也不同于一般的中文字符等于1,这种字符的对应上述的模式匹配表达式该怎么写?
直接贴你的语句
特殊字符加上N''
SELECT PATINDEX(N'%"%',N'特殊字符')
那字符竟然发不上来.
就是用ascii函数求出那个字符的ascii码比如这里是63
再用char(63)替换你的那个字符.
你这特殊符号占4个字节,2个字,这是个合成字由NCHAR(55357)+NCHAR(56446)组成
这不影响你判断你字符串
[code=sql]select
len(N'
特殊字符太多,你可用以下方式取正确有位置数
[code=sql]DECLARE @S NVARCHAR(100)=NCHAR(55357)+NCHAR(56446)+'"'
SELECT PATINDEX('%?"%',CAST(@S AS VARCHAR(100))),@s