我的IF..ELSE
阻止在BEGIN
处失败。我能理解我的表达式本质上不是布尔值,而是导致这种失败的原因是什么?
IF (SUBSTRING(@PARIDIN,1,1) = 'P'
BEGIN
SET @PARIDTEMP = SUBSTRING(LTRIM(RTRIM(@PARIDIN)),2,6))
END
BEGIN
ELSE SET @PARIDTEMP = @PARIDIN
END
答案 0 :(得分:2)
你在一个奇怪的地方有一组额外的括号。:
IF SUBSTRING(@PARIDIN,1,1) = 'P' -- one at the beginning of this line.
BEGIN
SET @PARIDTEMP = SUBSTRING(LTRIM(RTRIM(@PARIDIN)),2,6) -- one at the end of this line.
END
ELSE
BEGIN
SET @PARIDTEMP = @PARIDIN
END
答案 1 :(得分:1)
您没有关闭正在评估的表达式。
更改
IF (SUBSTRING(@PARIDIN,1,1) = 'P'
要
IF (SUBSTRING(@PARIDIN,1,1) = 'P')
答案 2 :(得分:0)
采取其他人的建议来解决这个问题我很惊讶没有人提到非常奇怪的BEGIN END块。他们没有意义,也不确定他们是否会工作。由于每个语句只有一个语句,因此删除它们更有意义。
IF (SUBSTRING(@PARIDIN,1,1) = 'P')
SET @PARIDTEMP = SUBSTRING(LTRIM(RTRIM(@PARIDIN)),2,6))
ELSE
SET @PARIDTEMP = @PARIDIN