IF
功能描述
判断给定条件是否为TRUE,为TRUE返回一个值,为FALSE返回另一个值。
注意事项
该功能仅在数据库兼容模式为MySQL时支持(即数据库实例初始化时指定DBCOMPATIBILITY='B')。
当函数的第一个入参为timestamp类型且取值为
0000-00-00 00:00:00
时,判断结果为FALSE。
语法格式
IF(expr1,expr2,expr3)
参数说明
expr1
自定义给定条件。
expr2
当给定条件为TRUE时的返回值,可自定义。
expr3
当给定条件为FALSE时的返回值,可自定义。
示例
示例1:SELECT 直接调用IF函数。
SELECT IF( (1 IN (1,2)),'YES','NO');
返回结果为:
if
-----
YES
(1 row)
示例2:SELECT语句中调用IF函数。
1、创建测试表并插入数据。
CREATE TABLE users (
id int NOT NULL,
username varchar(255) DEFAULT NULL,
age int DEFAULT NULL,
PRIMARY KEY (id)
) ;
INSERT INTO users VALUES ('1', 'Harry', '18');
INSERT INTO users VALUES ('2', 'Odin', '19');
INSERT INTO users VALUES ('3', 'Jack', '25');
INSERT INTO users VALUES ('4', 'Bobi', '8');
INSERT INTO users VALUES ('5', 'Tom', '27');
INSERT INTO users VALUES ('6', 'Flying', '21');
2、调用IF函数进行查询。
SELECT id, username,IF(age<18,'未成年','成年') AS 是否成年 FROM users;
返回结果为:
id | username | 是否成年
----+----------+----------
1 | Harry | 成年
2 | Odin | 成年
3 | Jack | 成年
4 | Bobi | 未成年
5 | Tom | 成年
6 | Flying | 成年
(6 rows)
清理环境
DROP TABLE users;