SQL Else If

SQL Else If 语句对于一次检查多个条件非常有用。If 语句是对“If then Else”(我们在之前的帖子中讨论过)的扩展。

If Else 语句只在给定条件为真或假时执行语句。但在现实世界中,我们可能需要检查两个以上的条件。在这些情况下,我们可以使用 SQL Server Else If 语句。让我们看看 Else if 语句的语法。

SQL Else If 语法

Else If 语句的语法是

IF (Expression 1)
BEGIN
   Statement 1;
END

ELSE IF (Expression 2)
BEGIN
   Statement 2;
END
..........
ELSE 
BEGIN
   Default Statement;
END

Else if 语句通过按顺序执行来有效地处理多个语句。它会检查第一个条件。如果条件为 TRUE,则执行该块中的语句。如果条件为 FALSE,则检查下一个(Else If 条件),依此类推。

在 Sql Server Else If 示例中,有时会遇到条件 1、条件 2 都为 TRUE 的情况,例如:

x = 30, y = 15

条件 1: x > y — TRUE

条件 2: x != y — TRUE

在这些情况下,会执行条件 1 下的语句。因为 ELSE IF 条件仅在其前面的 IF 或 ELSE IF 语句失败时才执行。

SQL Server Else If 流程图

为了更好地理解,让我们看看 else if 语句的流程图。

Flow Chart of a Else If

SQL Else If 示例

在此程序中,我们将使用 Else if 语句计算他是否有资格获得奖学金。

-- Else If Example

--Declaring Total Marks Out of 1000
DECLARE @Total_Marks INT = 940 ;

IF @Total_Marks > = 900
BEGIN
PRINT ' Congratulations ';
PRINT ' You are eligible for Full Scholarship ';
END
ELSE IF @Total_Marks > = 800
BEGIN
PRINT ' Congratulations ';
PRINT ' You are eligible for 50 Percent Scholarship ';
END
ELSE IF @Total_Marks > = 750
BEGIN
PRINT ' Congratulations ';
PRINT ' You are eligible for 10 Percent Scholarship ';
END
ELSE
BEGIN
PRINT ' You are Not eligible for Scholarship ';
PRINT ' We are really Sorry for You ';
END

输出 1:在此 Else If 演示中,Total_Marks = 940。这意味着第一个 If 条件为 TRUE,因此 If 语句内的语句显示为浏览器输出。

SQL ELSE IF 1

输出 2:让我们将 Total_Marks 从 940 更改为 820,以显示 SQL else if 语句示例。这里,第一个 IF 条件失败,所以它会检查 else if (@Total_Marks >= 800),这是 TRUE。因此,它将显示此块内的语句。尽管 else if (@Total_Marks >= 750) 条件为 TRUE,但它不会检查该条件。

ELSE IF 2

输出 3:让我们将 Total_Marks 从 820 更改为 760,这意味着第一个 IF 条件和 Else if (@Total_Marks >= 800) 都失败了。所以,它会检查 else if (@Total_Marks >= 750),这是 TRUE,因此它将打印此块内的语句。

ELSE IF 3

输出 4:我们将 Total_Marks 更改为 735。这意味着所有 IF 和 Else If 条件都失败了。所以,它会打印 else 块内的语句。我建议您参考 If then Else 文章在 Server

ELSE IF 4