首页 > 解决方案 > SQL Server - 识别 Varchar 中的十六进制范围

问题描述

我有一个带有 varchar 字段的表。它包含许多引起我们问题的字符,我相信它们介于十六进制范围 0x80 和 0x9F 之间(我相信它们是 cp1252 字符集中的 32 个字符,与 ISO-8859-1 具有不同的映射)。我正在尝试使用以下查询来识别它们,但它不起作用(基本上返回每个 patindex 为 1 的值)。任何帮助将不胜感激!

select top 2000
A.*, 
patindex('%[\x80-\x9F]%' COLLATE Latin1_General_BIN, MyField) AS PatIndexPosition
from MyTable A
where patindex('%[\x80-\x9F]%' COLLATE Latin1_General_BIN, MyField) > 0

标签: sql-serverhex

解决方案


推荐阅读