你说你看不懂openGauss我都不信(七十四)

43 阅读1分钟

#openGauss #入门 #安装 #数据库 #开源

知识来源:docs-opengauss.osinfra.cn/zh/

  • COALESCE

    COALESCE的语法图请参见图3

    图 3 coalesce::=

    COALESCE返回它的第一个非NULL的参数值。如果参数都为NULL,则返回NULL。它常用于在显示数据时用缺省值替换NULL。和CASE表达式一样,COALESCE只计算用来判断结果的参数,即在第一个非空参数右边的参数不会被计算。

    示例:

    注:如果模式tpcds不存在。请创建模式tpcds后,再进行建表操作。

    openGauss=# CREATE TABLE tpcds.c_tabl(Description varchar(10), short_Description varchar(10), last_value varchar(10)) ;
    
    openGauss=# INSERT INTO tpcds.c_tabl VALUES('abc', 'efg', '123');
    openGauss=# INSERT INTO tpcds.c_tabl VALUES(NULL, 'efg', '123');
    
    openGauss=# INSERT INTO tpcds.c_tabl VALUES(NULL, NULL, '123');
    
    openGauss=# SELECT Description, short_Description, last_value, COALESCE(Description, short_Description, last_value) FROM tpcds.c_tabl ORDER BY 1, 2, 3, 4;
     Description | short_Description | last_value | coalesce
    -------------+-------------------+------------+----------
     abc         | efg               | 123        | abc
                 | efg               | 123        | efg
                 |                   | 123        | 123
    (3 rows)
    
    openGauss=# DROP TABLE tpcds.c_tabl;
    

    如果Description不为NULL,则返回Description的值,否则计算下一个参数short_Description;如果short_Description不为NULL,则返回short_Description的值,否则计算下一个参数last_value;如果last_value不为NULL,则返回last_value的值,否则返回(none)。

    openGauss=# SELECT COALESCE(NULL,'Hello World');
       coalesce    
    ---------------
     Hello World
    (1 row)
    

#openGauss #入门 #安装 #数据库 #开源

知识来源:docs-opengauss.osinfra.cn/zh/