如果一个为空,请在SELECT上选择不同的列

时间:2015-02-24 01:42:37

标签: sql postgresql

我有一个包含两列的表(好吧,两列关注这个问题) - pub_date和update_date。 pub_date始终有一个日期,update_date为空,除非行已更新。有没有办法使用SELECT调用来返回update_date,但是如果update_date为空则回退到pub_date?

2 个答案:

答案 0 :(得分:4)

使用 coalesce 功能

  

COALESCE函数返回其第一个参数   空值。仅当所有参数都为空时才返回Null

select coalesce(update_date,pub_date),update_date,pub_date
from yourtable 

答案 1 :(得分:0)

使用CASE声明:

SELECT 
      CASE WHEN 
               update_date IS NULL OR 
               update_date='' 
           THEN pub_date ELSE update_date 
      END AS update_date 
FROM YourTable