У меня есть следующая строка, и я хочу преобразовать ее в DECIMAL(38,0)
:
a321
Следующий код в порядке:
SELECT CAST(CONVERT(binary(2), 'a321', 2) AS BIGINT); -- 41761
, но эта ошибка:
SELECT CAST(CONVERT(binary(2), 'a321', 2) AS DECIMAL(38,0));
Сообщение 8114, уровень 16, состояние 5, строка 7 Ошибка при преобразовании типа данных varbinary в числовой тип.
Ничего страшного в том, чтобы выполнить два приведения типа, как это:
SELECT CAST(CAST(CONVERT(binary(2), 'a321', 2) AS BIGINT) AS DECIMAL(38,0));
но я хочу знать, почему не работает.Кто-нибудь может объяснить?