У меня есть этот запрос
INSERT INTO dbo.finaltable (qty)
SELECT REPLACE(REPLACE(ISNULL(table1.[qty], '0'), CHAR(13), ''), CHAR(10),
'') as qty FROM dbo.sometable as table1
Кол-во столбца dbo.finaltable имеет тип decimal (18,4)
Когда я запускаю его, он выдаст ошибку
Arithmetic overflow error converting nvarchar to data type numeric.
Но когда я просто запускаю
SELECT REPLACE(REPLACE(ISNULL(table1.[qty], '0'), CHAR(13), ''), CHAR(10),
'') as qty FROM dbo.sometable as table1
Работает отлично. В table1.qty есть значения NULL, а значения NULL заменяются на «0». ISNULL не работает, если я использовал его вместе с INSERT. В чем здесь проблема?
EDIT:
Я прошу прощения за то, что предположил, что ошибка связана с ISNULL. Теперь я понимаю, что это как-то связано с языком. Этот вопрос должен быть закрыт.