VastbaseG100

基于openGauss内核开发的企业级关系型数据库。

Menu

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)