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的條件函數的使用方法,詳情請參見條件函數。