【发布时间】:2018-06-30 06:15:41
【问题描述】:
update Quotation_T
set DOID = CASE
WHEN DOID = '' THEN 19
WHEN DOID LIKE '%10%' THEN DOID
WHEN DOID != '' THEN (DOID + ',' + '20')
END
我收到一个错误
将 nvarchar 值 '19,20' 转换为数据类型 int 时转换失败
【问题讨论】:
-
很可能,
DOID是nvarchar(n)列 - 那么很明显:您的CASE表达式必须为所有路径返回相同的数据类型,并且从第一个WHEN子句返回一个INT,所有其他路径也必须返回一个INT,如果不返回,SQL Server 会将它们的返回值转换为INT,从而导致异常
标签: sql sql-server sql-server-2008