📜  SQL Server 中的 IIF()函数(1)

📅  最后修改于: 2023-12-03 15:20:15.263000             🧑  作者: Mango

SQL Server 中的 IIF() 函数

在 SQL Server 中,IIF() 函数是一个非常有用的逻辑函数,它类似于 Excel 中的 IF 函数,可以根据条件返回不同的结果。

语法

IIF() 函数的语法如下:

IIF (expression, true_value, false_value)

其中,expression 是要进行判断的表达式,如果 expression 为真,则返回 true_value,否则返回 false_value

示例

假设我们有一个 students 表,其中包含各个学生的成绩信息:

CREATE TABLE students (
  id INT IDENTITY(1,1) PRIMARY KEY,
  name VARCHAR(50),
  grade INT,
  gender CHAR(1)
);

INSERT INTO students (name, grade, gender)
VALUES ('Tom', 90, 'M'),
       ('Lucy', 80, 'F'),
       ('Jack', 70, 'M'),
       ('Lisa', 85, 'F'),
       ('Mike', NULL, 'M');

现在,我们想根据 grade 字段的值来判断学生的等级(A、B、C、D、E),如果 grade 为 NULL,则统一归为等级 E。可以使用 IIF() 函数实现:

SELECT name,
       IIF(grade >= 90, 'A', 
           IIF(grade >= 80, 'B', 
               IIF(grade >= 70, 'C', 
                   IIF(grade >= 60, 'D', 'E')))) AS level
FROM students;

以上 SQL 查询语句会输出以下结果:

name   | level
-------+------
Tom    | A
Lucy   | B
Jack   | C
Lisa   | B
Mike   | E

在上面的查询语句中,首先使用了一个外层的 SELECT 语句来查询所有学生的成绩信息,然后使用了 IIF() 函数来根据 grade 的值判断学生等级并生成新的一列。在 IIF() 函数中,嵌套了多个 IIF() 函数来实现多层判断。

以上就是 SQL Server 中的 IIF() 函数的介绍,希望对你有所帮助。