我的IF..ELSE
块失败,在BEGIN
。我可以理解我的表达式本质上不是布尔型的,但是导致这种失败的原因是什么?如果ELSE语法错误
IF (SUBSTRING(@PARIDIN,1,1) = 'P'
BEGIN
SET @PARIDTEMP = SUBSTRING(LTRIM(RTRIM(@PARIDIN)),2,6))
END
BEGIN
ELSE SET @PARIDTEMP = @PARIDIN
END
我的IF..ELSE
块失败,在BEGIN
。我可以理解我的表达式本质上不是布尔型的,但是导致这种失败的原因是什么?如果ELSE语法错误
IF (SUBSTRING(@PARIDIN,1,1) = 'P'
BEGIN
SET @PARIDTEMP = SUBSTRING(LTRIM(RTRIM(@PARIDIN)),2,6))
END
BEGIN
ELSE SET @PARIDTEMP = @PARIDIN
END
您未关闭正在评估的表达式。
变化
IF (SUBSTRING(@PARIDIN,1,1) = 'P'
要
IF (SUBSTRING(@PARIDIN,1,1) = 'P')
你在一个奇怪的地方:
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
由于@Sean Lange提及,我将'ELSE'移到了'BEGIN'和'END'块之外。 – ps2goat
以固定我的条件的其他人的建议,有一个额外的括号惊讶的没有人提到非常奇怪的BEGIN END块。他们没有意义,也不确定他们甚至会工作。由于你只有一个单独的声明,所以删除它们更有意义。
IF (SUBSTRING(@PARIDIN,1,1) = 'P')
SET @PARIDTEMP = SUBSTRING(LTRIM(RTRIM(@PARIDIN)),2,6))
ELSE
SET @PARIDTEMP = @PARIDIN
所有帽子都很好玩!但是你现在应该**停止** - 这真的很难阅读,真的很烦人 - 它被认为** SHOUTING **在粗鲁和不受欢迎的人。请不要这样做。 –