SQL Ошибка преобразования сервера на другом сервере - PullRequest
0 голосов
/ 04 мая 2020

У меня есть оператор выбора, который имеет преобразование Isnumeric, которое не выполняется на одном сервере и нормально работает на другом.

Оба сервера используют SQL Server 2012. База данных является копией второго сервер.

Ошибка:

Ошибка преобразования при преобразовании значения varchar '700.00' в тип данных int

Основной выбор фактически не возвращает строк.

voidOrDenied = (case when isnumeric(c.reasonpending) = 1 and 
                      cast(left(c.reasonpending, charindex(',', c.reasonpending+',')-1) as int)
                        between 1 and 25 then 'Void'
                      when c.reasonpending like '%void%' then 'Void'
                      else 'Denied' end),

Что может отличаться на втором сервере?

1 Ответ

0 голосов
/ 04 мая 2020

Использование try_cast():

(case when try_cast(left(c.reasonpending, charindex(',', c.reasonpending+',')-1) as int) between 1 and 25
      then 'Void'
      when c.reasonpending like '%void%' then 'Void'
      else 'Denied'
end)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...