如何在 if else 语句中设置多个值?

新手上路,请多包涵

我试图在下面的 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'

错误消息:“消息 156,级别 15,状态 1,第 9 行

关键字 ‘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'

我怎样才能正确地做到这一点?

原文由 Mattias 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.3k
1 个回答

如果 if 条件中有多个语句,则必须使用 BEGIN ... END 块来封装它们。

 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

原文由 Abdul Rasheed 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进