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

标签 sql sql-server tsql

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

相关文章:

c# - 通过 EntityFramework 插入默认值

sql-server - 查找存储过程列表的所有依赖项

sql - 是否可以根据条件以两种不同的方式对 SELECT 查询的结果进行排序?

用于查找接下来四天避开周日的时段的 SQL 查询

asp.net - 添加 Pooling=True 和 Integrated Security 会产生什么后果?

sql-server - SQL Server 架构同步

sql-server - 带有可选参数的 SQL Server 存储过程更新了错误的列

sql - 选择不存在的列失败

MySQL 查找获得最高正进展需要多少天

sql - MSSQL 在 SSMS 和 Node JS 脚本中返回不同的结果