- SQL 教程
- SQL - 首页
- SQL - 概述
- SQL - RDBMS 概念
- SQL - 数据库
- SQL - 语法
- SQL - 数据类型
- SQL - 运算符
- SQL - 表达式
- SQL 数据库
- SQL - 创建数据库
- SQL - 删除数据库
- SQL - 选择数据库
- SQL - 重命名数据库
- SQL - 显示数据库
- SQL - 备份数据库
- SQL 表
- SQL - 创建表
- SQL - 显示表
- SQL - 重命名表
- SQL - 截断表
- SQL - 克隆表
- SQL - 临时表
- SQL - 修改表
- SQL - 删除表
- SQL - 删除表
- SQL - 约束
- SQL 查询
- SQL - 插入查询
- SQL - 选择查询
- SQL - SELECT INTO
- SQL - INSERT INTO SELECT
- SQL - 更新查询
- SQL - 删除查询
- SQL - 排序结果
- SQL 视图
- SQL - 创建视图
- SQL - 更新视图
- SQL - 删除视图
- SQL - 重命名视图
- SQL 运算符和子句
- SQL - WHERE 子句
- SQL - TOP 子句
- SQL - DISTINCT 子句
- SQL - ORDER BY 子句
- SQL - GROUP BY 子句
- SQL - HAVING 子句
- SQL - AND & OR
- SQL - 布尔 (BIT) 运算符
- SQL - LIKE 运算符
- SQL - IN 运算符
- SQL - ANY, ALL 运算符
- SQL - EXISTS 运算符
- SQL - CASE
- SQL - NOT 运算符
- SQL - 不等于
- SQL - IS NULL
- SQL - IS NOT NULL
- SQL - NOT NULL
- SQL - BETWEEN 运算符
- SQL - UNION 运算符
- SQL - UNION vs UNION ALL
- SQL - INTERSECT 运算符
- SQL - EXCEPT 运算符
- SQL - 别名
- SQL 连接
- SQL - 使用连接
- SQL - 内连接
- SQL - 左连接
- SQL - 右连接
- SQL - 交叉连接
- SQL - 全连接
- SQL - 自连接
- SQL - 删除连接
- SQL - 更新连接
- SQL - 左连接 vs 右连接
- SQL - UNION vs JOIN
- SQL 密钥
- SQL - 唯一键
- SQL - 主键
- SQL - 外键
- SQL - 组合键
- SQL - 备选键
- SQL 索引
- SQL - 索引
- SQL - 创建索引
- SQL - 删除索引
- SQL - 显示索引
- SQL - 唯一索引
- SQL - 集群索引
- SQL - 非集群索引
- 高级 SQL
- SQL - 通配符
- SQL - 注释
- SQL - 注入
- SQL - 托管
- SQL - MIN & MAX
- SQL - NULL 函数
- SQL - 检查约束
- SQL - 默认约束
- SQL - 存储过程
- SQL - NULL 值
- SQL - 事务
- SQL - 子查询
- SQL - 处理重复项
- SQL - 使用序列
- SQL - 自动递增
- SQL - 日期和时间
- SQL - 游标
- SQL - 公共表表达式
- SQL - GROUP BY vs ORDER BY
- SQL - IN vs EXISTS
- SQL - 数据库调优
- SQL 函数参考
- SQL - 日期函数
- SQL - 字符串函数
- SQL - 聚合函数
- SQL - 数值函数
- SQL - 文本和图像函数
- SQL - 统计函数
- SQL - 逻辑函数
- SQL - 游标函数
- SQL - JSON 函数
- SQL - 转换函数
- SQL - 数据类型函数
- SQL 有用资源
- SQL - 问答
- SQL - 快速指南
- SQL - 有用函数
- SQL - 有用资源
- SQL - 讨论
SQL - IIF() 函数
SQL 的IIF()函数用于验证条件是真还是假。
它接受三个参数boolean_expression、true_value和false_value,并根据 SQL Server 中布尔表达式计算结果为真还是假返回两个值之一。如果条件为真,则返回true_value;否则返回false_value。
注意 - 如果表达式不是布尔表达式或无效表达式,则IIF()函数将抛出错误。
语法
以下是 SQL IIF()函数的语法:
IIF( boolean_expression, true_value, false_value )
参数
boolean_expression - 它是一个有效的布尔表达式。
true_value - 它可以是任何数据类型的值,当布尔表达式计算结果为true时返回。
false_value - 它可以是任何数据类型的值,当布尔表达式计算结果为false时返回。
返回值
此函数根据 boolean_expression 返回两个值之一。
示例
在下面的示例中,我们使用 SQL IIF()函数来验证布尔表达式'10>5'是否计算结果为真 (返回 1) 或假 (返回 0)。
SELECT IIF(10>5, 1, 0) as Result;
输出
执行上述程序后,将产生以下输出:
+-------+ | Result| +-------+ | 1 | +-------+
示例
以下是 SQL IIF()函数的另一个示例,在这里我们使用此函数来比较两个字符串'Hello'和'World'的长度,以确定哪个更长。
DECLARE @STR1 VARCHAR(10) = 'Hello', @STR2 VARCHAR(10) = 'World'; SELECT IIF(LEN(@STR1) > LEN(@STR2), @STR1 + ' string is larger', @STR2 + ' string is larger ') as Result;
输出
以下是上述语句的输出:
+-------------------------+ | Result | +-------------------------+ | World string is larger | +-------------------------+
示例
如果我们传递无效的 boolean_expression,则此函数会抛出错误。
在此示例中,我们使用 SQL IIF()函数来验证布尔表达式'a>b'是否计算结果为true (返回 'valid')或false (返回 'invalid')。
SELECT IIF('a>b', 'valid', 'invalid');
输出
上述 SQL 语句产生以下输出:
An expression of non-boolean type specified in a context where a condition is expected, near '('.
示例
您还可以将表列作为参数传递给 SQL IIF()函数,以验证哪个客户的薪水大于特定金额。假设我们使用CREATE语句创建了一个名为Customer的表,如下所示:
CREATE TABLE CUSTOMERS( ID INT NOT NULL, NAME VARCHAR (20) NOT NULL, AGE INT NOT NULL, ADDRESS CHAR (25) , SALARY DECIMAL (18, 2));
现在,让我们使用INSERT语句在Customers表中插入一些记录,如下所示:
INSERT INTO CUSTOMERS (ID,NAME,AGE,ADDRESS,SALARY) VALUES (1, 'Ramesh', 32, 'Ahmedabad', 2000.00 ); INSERT INTO CUSTOMERS (ID,NAME,AGE,ADDRESS,SALARY) VALUES (2, 'Khilan', 25, 'Delhi', 1500.00 ); INSERT INTO CUSTOMERS (ID,NAME,AGE,ADDRESS,SALARY) VALUES (3, 'kaushik', 23, 'Kota', 2000.00 ); INSERT INTO CUSTOMERS (ID,NAME,AGE,ADDRESS,SALARY) VALUES (4, 'Chaitali', 25, 'Mumbai', 6500.00 );
以下 SQL 查询验证Customer表中哪些客户的薪水低于2000:
SELECT ID, NAME, SALARY, IIF(SALARY > 2000, 'Salary is greater than 1000', 'Salary is less than 1000') AS RESULT FROM CUSTOMERS;
输出
上述 SQL 查询将生成以下输出:
+----+----------+---------------+-----------------------------+ | ID | NAME | SALARY | RESULT | +----+----------+---------------+-----------------------------+ | 1 | Ramesh | 2000.00 | Salary is less than 1000 | | 2 | Khilan | 1500.00 | Salary is less than 1000 | | 3 | kaushik | 2000.00 | Salary is less than 1000 | | 4 | Chaitali | 6500.00 | Salary is greater than 1000 | +----+----------+---------------+-----------------------------+
注意 - 您还可以使用IIf()函数检查年龄大于指定年龄标准的客户的年龄。