У меня есть этот запрос, основанный на @Amount
параметраКонверсия удалось при преобразовании значения VARCHAR «%» для INT Ошибка типа данных
Amount varchar(20)= NULL
SELECT .....
Format(T1.Amount, 'c', 'en-us') as Amount1,
Format(T2.Amount, 'c', 'en-us') as Amount2
FROM Table1
WHERE .....
AND (T1.Amount>= CAST(@Amount AS INT) OR T2.Amount >= CAST(@Amount AS INT))
AND @Amount IS NOT NULL
Если параметр @Amount
не NULL
и числовой запрос работает отлично, но если параметр @Amount
равен '%'
или NULL
, я получаю вышеуказанную ошибку преобразования.
Любая идея о том, как ее решить?
Какую версию SQL Server вы используете? SQL Server 2012+ поддерживает функцию [TRY_PARSE] (https://msdn.microsoft.com/en-us/library/hh213126.aspx), которая может вам помочь. –
Почему вы думаете, что вы можете преобразовать значение '%' в int? – Tanner
вы также можете использовать функцию IsNumeric и установить значение, применив регистр с функцией IsNumeric. –