将二进制Id字段转换为文本

时间:2010-09-23 09:07:25

标签: sql sql-server-2005

我需要SQL Server 2005中id字段的文本(表示)。有没有办法,我们可以生成id字段的文本表示吗?

例如,如果id字段读为0x00000000000002F0,我需要文本值0x00000000000002F0,以便我可以在同一个上运行SUBSTR操作。

约束

  1. 我不允许在数据库中创建存储过程(因为不允许创建SP)
  2. 谢谢!

2 个答案:

答案 0 :(得分:4)

您可以使用

将unicode字符串转换为二进制
SELECT CONVERT(VARBINARY(40),N'Hello World')
(returns 0x480065006C006C006F00200057006F0072006C006400)

使用

从二进制转换回unicode
SELECT CONVERT(NVARCHAR(20), 0x480065006C006C006F00200057006F0072006C006400)
(returns 'Hello World')

答案 1 :(得分:3)

虽然对我来说并不是很明显,为什么你会为了比较而想要这样做(而不是匹配二进制值),但未记录的函数sys.fn_varbintohexstr应该可以做到这一点

declare  @vb binary(8)
        ,@vc varchar(20)

set @vb = 0x00000000000002F0
set @vc = sys.fn_varbintohexstr(@vb)

--prove that this works by concatenating a string to the varchar value
select @vb, '#' + @vc