Ошибка преобразования типа данных nvarchar в числовой - сопоставление - PullRequest
0 голосов
/ 24 мая 2018

Ошибка преобразования типа данных nvarchar в числовой.

SELECT HCI.variationID, CAST(isnull(HCI.ContractRef, 0) as numeric(32,2)) as 
targethrs
FROM pcms.Variation_New HCI

Довольно простая ошибка, но я пробовал множество вещей без радости.это может помочь

    Column Name   Type          Collation                       
    ContractRef   nvarchar(50)  Latin1_General_CI_AS                        

Мне нужен числовой результат

1 Ответ

0 голосов
/ 24 мая 2018

Как упомянул Smor, try_convert() или try_cast() не выдаст ошибку, если преобразование завершится неудачей ... вместо этого он вернет NULL.

SELECT HCI.variationID
     , isnull( try_convert(numeric(32,2),HCI.ContractRef), 0) as targethrs
FROM pcms.Variation_New HCI

Реальная проблема заключается в том, что выесть данные, которые не могут быть преобразованы.Чтобы идентифицировать эти записи для исправления:

Select *
 From pcms.Variation_New HCI
 Where try_convert(numeric(32,2),HCI.ContractRef) is null
   and HCI.ContractRef is not null
...