Преобразовать поле двоичного идентификатора в текст - PullRequest
4 голосов
/ 23 сентября 2010

Мне нужен текст (представление) поля id в SQL Server 2005. Есть ли способ, которым мы можем сгенерировать текстовое представление поля id?

Например, если поле id читается как 0x00000000000002F0, мне нужно текстовое значение 0x00000000000002F0, чтобы я мог выполнять операции SUBSTR на том же.

Ограничения

  1. Мне не разрешено создавать хранимую процедуру в базе данных (поскольку создание SP не разрешено)

Спасибо!

Ответы [ 2 ]

4 голосов
/ 23 сентября 2010

Вы можете конвертировать строки Unicode в двоичный файл, используя

SELECT CONVERT(VARBINARY(40),N'Hello World')
(returns 0x480065006C006C006F00200057006F0072006C006400)

Преобразование из двоичного кода в Unicode, используя

SELECT CONVERT(NVARCHAR(20), 0x480065006C006C006F00200057006F0072006C006400)
(returns 'Hello World')
3 голосов
/ 23 сентября 2010

Хотя для меня не сразу очевидно, почему вы захотите сделать это для целей сравнения (в отличие от сопоставления двоичных значений), недокументированная функция 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...