SQL Server在Unicode HEX中查找字符串

时间:2013-09-20 23:09:54

标签: sql-server-2008 unicode hex

我需要找到存储在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%;

我真的很感激我能得到的任何帮助

由于

1 个答案:

答案 0 :(得分:1)

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

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