【问题标题】:SQL Server finding string in Unicode HEXSQL Server 在 Unicode HEX 中查找字符串
【发布时间】:2025-12-05 07:35:01
【问题描述】:

我需要找到存储在 SQL Server 2008 上的 varbinary 字段中的字符串的一部分。存储在该字段中的数据是 HEX 二进制。

例如该字段有0xA0000000001A000000000000000000000000000000000000000000000000000000850000002416002F002A002000480065006C006C006F0020002A002F0007

我可以忽略前 37 个字符。当我在 SQL 应用程序中查看它时,它在前 37 个字符之后显示如下

/..H.e.l.l.o../

我知道十六进制二进制文件以 Unicode 格式存储。

我的问题是如何使用 SQL 语句搜索单词“Hello”。 我在下面尝试了以下方法,但没有得到任何结果

SELECT CONVERT(varchar(max),fieldname) from tablename where fieldname like '%Hello%;

如果能得到任何帮助,我将不胜感激

谢谢

【问题讨论】:

    标签: sql-server-2008 unicode hex


    【解决方案1】:

    如果二进制值采用 Unicode 编码,则需要将其转换为 NVARCHAR,并使用 Unicode 字符串文字作为搜索值:

    SELECT CONVERT(nvarchar(max),fieldname) from tablename where fieldname like N'%Hello%';
    

    【讨论】: