更新时间:2025-09-12 GMT+08:00
分享

流程控制函数

IF

IF(expr1, expr2, expr3)

描述:如果expr1为TRUE(即expr1不等于0且expr1不为NULL),IF()返回expr2;否则,IF()返回expr3。

示例:

m_db=# SELECT IF(true, 'ab', 1);
 case 
------
 ab
(1 row)

m_db=# SELECT IF(1>2, 1, NULL);
 case 
------

(1 row)

m_db=# SELECT IF(NULL, 'TRUE', 'FALSE');
 case  
-------
 FALSE
(1 row)

IFNULL

IFNULL(expr1, expr2)

描述:如果expr1不为null,IFNULL()返回expr1;如果expr1为null,IFNULL()返回expr2。

示例:

m_db=# select ifnull(12, 123);
 ifnull 
--------
     12
(1 row)

m_db=# select ifnull(null, 123);
 ifnull 
--------
    123
(1 row)

NULLIF

NULLIF(expr1, expr2)

描述:如果expr1等于expr2,返回空值;否则,返回expr1。

示例:

m_db=# select nullif(123, 123);
 nullif 
--------

(1 row)

m_db=# select nullif(12, 123);
 nullif 
--------
     12
(1 row)

相关文档