MySQL IF是否等于COALESCE?

Is MySQL IF equal to COALESCE?

提问人:user7370387 提问时间:1/17/2017 最后编辑:user7370387 更新时间:1/17/2017 访问量:1248

问:

IF(CS2_PDM_D_Mini IS NULL,0,CS2_PDM_D_Mini)

平等

COALESCE(CS2_PDM_D_Mini),0) 

因为Postgres不懂,我有大量的MySQL语句到一个SQL查询中,要转换成PostgreSQL接受的东西IFIF

mysql if语句 合并

评论

0赞 Vivek S. 1/17/2017
select coalesce (Null,0)这样就返回又返回,所以正确的方式是0select coalesce (2,0)2select coalesce (CS2_PDM_D_Mini,0) from tbl
0赞 user7370387 1/17/2017
好的,非常感谢你,但它会产生与我提到的 IF 语句相同的结果吗?我认为是的,但不确定 100% !
0赞 Vivek S. 1/17/2017
如果您只想返回(单个条件并检查 NULL),那么它将起作用0
0赞 Vivek S. 1/17/2017
或者,如果要处理多个条件,则应使用 。WEP ,一个简单的搜索就足以得到一个想法caseCASE WHEN condition THEN result [WHEN ...] [ELSE result] END

答:

0赞 Vao Tsun 1/17/2017 #1

如果要模拟 Mysql 格式,请使用 ,如下所示:IFCASE WHEN THEN END

t=# select case when CS2_PDM_D_Mini  is null then 0 else CS2_PDM_D_Mini end ;

查看两者的文档CASECOALESCE

COALESCE 函数返回其第一个参数,该参数不是 零

IFpl/PgSql 语句