Отказ от ответственности: Надеюсь, что на вашей версии 2008 работает следующее. Я не уверен насчет поддержки convert()
стилей данной гекс-строки. Я нахожусь в 2014 году. Если это не сработает, я удалю или отредактирую ответ, пожалуйста, прокомментируйте соответственно.
Поскольку это шестнадцатеричная строка, и вы хотите изменить порядок байтов, вы можете convert()
присвоить ей varbinary
и использовать reverse()
для этого. Это обратит его байт за байтом. convert()
обратно к varchar
в конце.
SELECT convert(varchar(max), convert(varbinary(max), reverse(convert(varbinary(max), '50326518', 2))), 2)
Печать:
18653250
Обратите внимание, по какой-то причине мне пришлось явно convert()
снова вернуть значение reverse()
, так как в противном случае, похоже, происходит неявное приведение к varchar
. Так что это намеренно.
Возможно также рассмотрите возможность хранения данных как binary
или, возможно, int
. В противном случае трудно применить нормальные данные (я мог бы вставить в строку всевозможные забавные вещи, которые вообще не являются шестнадцатеричными).