
# 流量控制函数
表1流量控制函数列表 
| 序号 | MySQL数据库 | GaussDB数据库 | 差异                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
|:---|:---|:---|:---|
| 1  | IF()     | 支持         | - expr1入参仅支持bool类型。非bool类型入参若不能转换为bool类型则报错。  - 若expr2、expr3两入参类型不同且两类型间不存在隐式转换函数则报错。  - 两入参类型相同时，返回该入参类型。  - 若expr2、expr3两入参类型分别为NUMERIC、STRING或TIME其中一个时，输出为text类型，MySQL输出为varchar类型。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| 2  | IFNULL() | 支持         | - 若expr1、expr2两入参类型不同且两类型间不存在隐式转换函数则报错。  - 两入参类型相同时，返回该入参类型。  - 若expr1、expr2两入参类型范畴分别为NUMERIC、STRING或TIME其中一个时，输出为text类型，MySQL输出为varchar类型。  - 两入参类型第一个入参为float4，另一个为bigint或unsigned bigint时返回double类型，MySQL返回float类型。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| 3  | NULLIF() | 支持         | - GaussDB中NULLIF()类型推导遵从以下逻辑： 1. 如果两个参数的数据类型不同，且两入参类型存在等值比较操作符，则返回对应等值操作符对应的左值类型，否则会对两入参类型进行强制类型兼容。  2. 若强制类型兼容后，存在等值比较操作符，则返回强制类型兼容后对应等值操作符的左值类型。  3. 若强制类型兼容后，仍找不到对应等值操作符，则报错。    - MySQL输出类型仅与第一个入参类型有关： 1. 第一个入参为tinyint、smallint、mediumint、int、bool时，输出为int类型。  2. 第一个入参为bigint时，输出为bigint类型。  3. 第一个入参为unsigned tinyint、unsigned smallint、unsigned mediumint、unsigned int、bit时，输出为unsigned int类型。  4. 第一个入参为unsigned bigint时，输出为unsigned bigint。  5. 第一个入参为浮点型即float、double、real时，输出为double类型。  6. 第一个入参类型为decimal或numeric类型时，输出为decimal类型。  7. 第一个入参类型为时间类型或字符串类型即date、time、date、datetime、timestamp、char、varchar以及tinytext、enum、set时，输出为varchar类型。  8. 第一个入参类型为text、mediumtext、longtext时，输出为longtext类型。  9. 第一个入参类型为tinyblob时，输出为varbinary类型。  10. 第一个入参类型为mediumblob或longblob时，输出为longblob类型。  11. 第一个入参为blob时，输出为blob类型。     |
| 4  | ISNULL() | 支持         | GaussDB中返回值为boolean类型的t或f，MySQL中返回值为int类型的1或0。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
   
