📅  最后修改于: 2023-12-03 15:20:15.263000             🧑  作者: Mango
在 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() 函数的介绍,希望对你有所帮助。