MS SQL Server将值与HEX进行比较

时间:2017-09-22 04:02:17

标签: sql sql-server-2008-r2

此处必须忽略一些内容,此查询转换并比较十六进制中的值

select NAME, convert(varchar, convert(Varbinary(MAX), NAME),2), convert(varchar, convert(Varbinary(MAX), 'freddy'),2) from CUSTOMERS 

工作正常,但正如您所看到的,从数据库检索的值填充了00空白

freddy  660072006500640064007900    667265646479

没想到......有什么方法可以放弃它们吗?

哦,另外的信息,00是unicode字符的规定,这很好,但是我只想要我的诅咒" freddy"匹配我检索到的" freddy"十六进制

感激地接受任何指导,欢呼

第二天通过添加额外的转换(varchar(MAX),USRPWRD)进行排序,这样;

convert(varchar, convert(Varbinary(MAX), convert(varchar(MAX), USRPWRD)),2)

返回此

667265646479
如果字段中需要unicode字符

,那么

就不会那么好了

另一天或两天......

现在我发现我的SQL查询只返回部分十六进制。这是我数据库中电子邮件地址的值;

whatever.happened@rumplestiltzken.com

这是转换为十六进制的电子邮件地址

77686174657665722E68617070656E65644072756D706C657374696C747A6B656E2E636F6D

这是我的查询的相关部分

convert(varchar, convert(Varbinary(MAX), convert(varchar(MAX), USREMAIL)),2)

这是它返回的内容,它正好是上面的完整十六进制字符串的前30个字符

77686174657665722E68617070656E

如何获得完整的十六进制..?求救!

已解决(最终vchar需要(MAX))

convert(varchar(MAX), convert(Varbinary(MAX), convert(varchar(MAX), USREMAIL)),2)

0 个答案:

没有答案
相关问题