VastbaseG100

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

Menu

IF

功能描述

判断给定条件是否为TRUE,为TRUE返回一个值,为FALSE返回另一个值。

注意事项

  • 该特性仅在数据库兼容模式为MySQL时能够使用(即创建DB时DBCOMPATIBILITY='B'),在其他数据库兼容模式下不能使用该特性。
  • 仅Vastbase G100 V2.2 Build 10(Patch No.5)及以后版本支持此功能。

语法格式

IF(expr1,expr2,expr3)

参数说明

  • expr1

    自定义给定条件(布尔表达式)。

  • expr2

    当给定条件为TRUE时的返回值,可自定义。

  • expr3

    当给定条件为FALSE时的返回值,可自定义。

示例

前置步骤:创建兼容MySQL的库db_mysql,并进入。

create database db_mysql dbcompatibility  'B';
\c  db_mysql

示例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)