Hologres兼容PostgreSQL,支持使用标准的PostgreSQL语法进行开发,当前Hologres版本支持的函数是PostgreSQL的一个子集。本文为您介绍Hologres已支持的条件函数列表及使用用例。
函数 | 功能 |
在指定的条件表达式为TRUE时执行一组单个或多个语句。 | |
返回参数列表中第一个非空表达式的值。 | |
选择表达式列表中的最大值。 | |
根据判断条件选择执行的语句。 说明 仅Hologres V2.1版本起支持IF函数。如果您的实例版本为V2.0及以下版本,请先升级实例版本,详情请参见实例升级。 | |
选择表达式列表中的最小值。 | |
判断两个表达式的值是否相等,如果相等,则结果返回NULL,反之返回第一个表达式的值。 |
示例数据
CASE、NULLIF、GREATEST和LEAST函数相关的示例均基于test
示例数据。以下是创建表test
并添加数据的命令示例。
CREATE TABLE test (
a INT
);
INSERT INTO test (a) VALUES (1);
INSERT INTO test (a) VALUES (2);
INSERT INTO test (a) VALUES (3);
CASE
描述:在指定的条件表达式为TRUE时执行一组单个或多个语句。
示例
SELECT a, CASE WHEN a=1 THEN 'one' WHEN a=2 THEN 'two' ELSE 'other' END FROM test;
返回结果如下。
a case ----+----------- 1 one 2 two 3 other
IF
仅Hologres V2.1版本起支持IF函数。如果您的实例版本为V2.0及以下版本,请先升级实例版本,详情请参见实例升级。
描述:根据判断条件选择执行的语句。
IF(condition, value_if_true, value_if_false)
condition:判断条件,如果判断条件的结果为TRUE,返回第二个参数。如果判断条件的结果为FALSE或为NULL,返回第三个参数。
示例
DROP TABLE IF EXISTS if_test; CREATE TABLE if_test ( id int, name text, age int ); INSERT INTO if_test VALUES ('1', 'a', '18'), ('2', 'b', '19'), ('3', 'c', '25'), ('4', 'd', '8'), ('5', 'e', '27'), ('6', 'f', '21'); SELECT name, IF (age >= 18, '成年', '未成年') FROM if_test;
返回结果如下。
+-------+---------+ | name | if | +-------+---------+ | a | 成年 | | c | 成年 | | e | 成年 | | f | 成年 | | d | 未成年 | | b | 成年 |
COALESCE
描述:返回参数列表中第一个非空表达式的值。
说明当所有表达式为NULL时,结果返回NULL。
示例
--返回结果:1 SELECT COALESCE(1,2); --返回结果:2 select COALESCE(NULL,2,1); --返回结果:0 select COALESCE(NULL,0);
NULLIF
描述:判断两个表达式的值是否相等,如果相等,则结果返回NULL,反之返回第一个表达式的值。
示例
SELECT a, NULLIF('a','a') FROM test;
返回结果如下。
a nullif ----+----------- 1 2 3
GREATEST
描述:选择表达式列表中的最大值。
示例
SELECT a, GREATEST('a','b','c') FROM test;
返回结果如下。
a greatest ----+----------- 1 c 2 c 3 c
LEAST
描述:选择表达式列表中的最小值。
示例
SELECT a, LEAST('a','b','c') FROM test;
返回结果如下。
a least ----+----------- 1 a 2 a 3 a
相关文档
PostgreSQL的条件函数的使用方法,详情请参见条件函数。
文档内容是否对您有帮助?