t-sql:在then语句中将数据类型varchar转换为numeric时出错

use*_*427 5 t-sql

我无法理解错误,因为我没有尝试将变量@FQTROQ转换为数字.

declare @FQTROQ varchar(30)
declare @FQNUTQ decimal(6,0)
set @FQTROQ = 'R-354'
set @FQNUTQ = 100

SELECT ( CASE WHEN (@FQTROQ is not null and @FQTROQ <> '')
THEN ( @FQTROQ )
ELSE ( @FQNUTQ ) END ) AS Numero_Troquel
Run Code Online (Sandbox Code Playgroud)

有帮助吗?谢谢

Nei*_*ght 4

declare @FQTROQ varchar(30)
declare @FQNUTQ decimal(6,0)
set @FQTROQ = 'R-354'
set @FQNUTQ = 100

SELECT CASE WHEN (@FQTROQ is not null and @FQTROQ <> '')
THEN @FQTROQ
ELSE CAST(@FQNUTQ AS VARCHAR(30)) END AS Numero_Troquel
Run Code Online (Sandbox Code Playgroud)

您需要将 强制转换DECIMAL为 a VARCHAR,以便语句的输出CASE具有相同的输出值。