Мне нужна помощь с чем-то, что я не совсем уверен, как решить.преобразование varchar в Int SQL SERVER
Это мой код:
SELECT DISTINCT
Nr_of_Times_Cust_No_Appears=CASE WHEN CAST(a.TV_Code AS Int)-CAST(BB_Code AS Int)=0 THEN COUNT(*) OVER (PARTITION BY BB_Code) ELSE 'Not same' END
FROM table
В принципе, приведенный выше код предназначен, чтобы убедиться, что вычитание ТВ кодекса и BB код равен нулю (0), если нет, то «Не Same». ТВ-код и BB-код - оба varchar, которые являются CAST-Int. Проблема заключается в том, что ELSE «НЕ ТАКОЙ».
Это выход я получаю от SQL Server Management Studio:
Conversion failed when converting the varchar value 'Not same' to data type int.
Что я должен сделать, чтобы заставить его работать?
ОБНОВЛЕНИЕ: Я наконец нашел обходное решение.
CAST(COUNT(*) OVER (PARTITION BY XX) AS Varchar).....
Это сработало !!!!
Но почему вы храните значения int как char (или какой тип данных он есть)? Целочисленные значения должны храниться в целых столбцах. – jarlh
Ответ указан в ошибке. Вы не можете преобразовать «Не то же самое» в int – Matt