Строковый ввод сопоставляется с двоичным полем в SQL ГДЕ - PullRequest
0 голосов
/ 19 октября 2011

Вот сценарий: у меня есть оператор выбора SQL, который возвращает двоичный объект данных в виде строки.Это не может быть изменено, это находится вне области того, что я могу изменить.Так, например, будет возвращено '1628258DB0DD2F4D9D6BC0BF91D78652'.

Если я вручную добавлю 0x перед этой строкой в ​​запросе, я получу результаты, которые я ищу, например, так: SELECT a, b FROM mytableГДЕ uuid = 0x1628258DB0DD2F4D9D6BC0BF91D78652 Мой набор результатов верен.

Однако мне нужно найти средства, совместимые с Microsoft SQL Server 2008, чтобы сделать это программно.Простое объединение 0x со строковой переменной не работает.Очевидно, но я попробовал.

Помогите пожалуйста :) Спасибо Марк

1 Ответ

3 голосов
/ 19 октября 2011

Насколько я понимаю ваш вопрос, у вас есть столбец uuid, который равен binary.

Вы пытаетесь выбрать строки с определенным значением в uuid, но вы пытаетесь использовать такую ​​строку:

SELECT a, b FROM mytable WHERE uuid = '0x1628258DB0DD2F4D9D6BC0BF91D78652'

который не работает. Если это правильно, вы можете использовать функцию CONVERT со стилем 2, чтобы SQL Server обрабатывал строку как шестнадцатеричную и не требовал '0x' в качестве первых символов:

SELECT a, b 
FROM mytable 
WHERE uuid = CONVERT(binary(16), '1628258DB0DD2F4D9D6BC0BF91D78652', 2)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...