事务处理 SQL 中 IF 下的多个条件



我正在尝试在 If 条件中使用"和",如下所示:

Begin
If condition1 and condition2 
then begin result1 
end else begin result2;
End;
end;

声明中有什么问题。有人可以帮忙吗?谢谢!

删除您的THEN。例

DECLARE @variable INT = 0
DECLARE @variable2 INT = 10
IF @variable > 0 AND @variable2 > 0
BEGIN
SELECT 'Condition was met'
END
ELSE
BEGIN
SELECT 'Condition was not met'
END

如果要链接IFs

DECLARE @variable INT = 0
DECLARE @variable2 INT = 10
IF @variable > 0 AND @variable2 > 0
BEGIN
SELECT 'Condition 1 was met'
END
ELSE IF @variable = 0 AND @variable2 > 0
BEGIN
SELECT 'Condition 2 was met'
END
ELSE
BEGIN
SELECT 'No condition was met'
END

此外,您可以避免BEGIN...END,如果你只需要一个语句,但如果表达式很长,阅读起来可能会很棘手。

DECLARE @variable INT = 0
DECLARE @variable2 INT = 10
IF @variable > 0 AND @variable2 > 0
SELECT 'Condition was met'
ELSE
SELECT 'Condition was not met'

作为一个疯狂的猜测,失去"然后"(SFrejofsky的评论(,并失去第一个;这是在开始内。端块。

此外,如果块中只有可执行行,则开始。.不需要 end,因此您的代码应如下所示

If condition1 and condition2 
result1 
else 
result2

Begin If condition1 and condition2 result1 else result2 END

最新更新