我试图在下面的 if else 语句中设置多个值,如果我设置一个值,它会起作用,但如果我设置两个值,它不起作用:
DECLARE @test1 varchar(60);
DECLARE @test2 varchar(60);
IF ((SELECT COUNT(*) FROM table WHERE table.Date > '2016-03-20') > 10)
SET @test1 = 'test1'
SET @test2 = 'test2'
ELSE
SET @test1 = 'testelse'
SET @test2 = 'testelse'
Error message: "Msg 156, Level 15, State 1, Line 9
Incorrect syntax near the keyword 'ELSE'."
但是,在 else 之后似乎可以有多个 SET 变量;此代码有效:
IF ((SELECT COUNT(*) FROM table WHERE table.Date > '2016-03-20') > 10)
SET @test1 = 'test1'
ELSE
SET @test1 = 'testelse'
SET @test2 = 'testelse'
我怎样才能正确地做到这一点?
最佳答案
如果 if 条件中有多个语句,则必须使用 BEGIN ... END
block 来封装它们。
IF ((SELECT COUNT(*) FROM table WHERE table.Date > '2016-03-20') > 10)
BEGIN
SET @test1 = 'test1'
SET @test2 = 'test2'
END
ELSE
BEGIN
SET @test1 = 'testelse'
SET @test2 = 'testelse'
END
关于sql - 如何在 if else 语句中设置多个值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36279671/