相关疑难解决方法(0)

如何检查非 Ascii 字符

检查 VARCHAR 字段是否具有非 Ascii 字符的最佳方法是什么?
CHAR(1)通过CHAR(31)CHAR(127)通过CHAR(255)

我尝试使用PATINDEX并遇到了以下问题。

检查下范围是否正常工作。

SELECT *      
FROM mbrnotes      
WHERE PATINDEX('%[' + CHAR(1)+ '-' +CHAR(31)+']%',LINE_TEXT) > 0  
Run Code Online (Sandbox Code Playgroud)

我的数据有 0x1E 的三个记录,并且所有三个都返回了。

但是当我只检查上限时:

SELECT *      
FROM mbrnotes      
WHERE PATINDEX('%[' + CHAR(127)+ '-' +CHAR(255)+']%',LINE_TEXT) > 0 
Run Code Online (Sandbox Code Playgroud)

它返回接近表中的所有记录(表计数 170737 并返回计数 170735),并且由于我的数据在此范围内没有任何值,我认为它不应该返回任何记录。

sql-server t-sql sql-server-2008-r2

17
推荐指数
2
解决办法
5万
查看次数

标签 统计

sql-server ×1

sql-server-2008-r2 ×1

t-sql ×1