我需要找到存储在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%;
我真的很感激我能得到的任何帮助
由于
答案 0 :(得分:1)
如果二进制值采用Unicode编码,则需要将其强制转换为NVARCHAR
,并使用Unicode字符串文字作为搜索值:
SELECT CONVERT(nvarchar(max),fieldname) from tablename where fieldname like N'%Hello%';