我正在使用PostgreSQL数据库,在表示一些测量的表中,我有两列:测量和插值。在第一个我观察(测量),在第二个内插值取决于附近的值。具有原始值的每个记录也具有内插值。但是,有许多记录没有“原始”观察(NULL),因此值被内插并存储在第二列中。所以基本上只有两个案例在数据库中:
Value Value
NULL Value
当然,最好使用第一列中的值(如果可用),因此我需要构建一个查询来从第一列中选择数据,如果不可用(NULL),则数据库返回值从有关记录的第二列开始。我不知道如何构建SQL查询。
请帮忙。感谢。
答案 0 :(得分:31)
您可以使用Coalesce
:
COALESCE
函数返回其第一个非null的参数。仅当所有参数都为空时才返回Null。
Select Coalesce( first_value, second_value )
From your_table
如果不是first_value
,则返回NULL
,否则返回second_value
。
答案 1 :(得分:8)
CASE, COALESCE, NULLIF, GREATEST, LEAST
。第一个是最一般的。