修改COALESCE函数以考虑Greenplum

时间:2015-10-28 20:17:28

标签: null case coalesce greenplum postgresql-8.2

我目前正在使用COALESCE函数从字段列表中获取第一个NOT NULL值。例如:

 COALESCE(header_to_node_13.subsetname, header_to_node_12.subsetname,
 header_to_node_11.subsetname, header_to_node_10.subsetname, 
 header_to_node_9.subsetname, header_to_node_8.subsetname, 
 header_to_node_7.subsetname, header_to_node_6.subsetname,   
 header_to_node_5.subsetname, header_to_node_4.subsetname,
 header_to_node_3.subsetname, header_to_node_2.subsetname,     
 header_to_node_1.subsetname, 
 header_to_node.subsetname, header_to_node.setname) AS prctr1

我需要修改逻辑,以便我也可以获取COALESCE值右侧的值,这样就可以比较这两个值来填充新创建的字段。

例如,如果COALESCE值为header_to_node_5.subsetname,我还需要抓取header_to_node_4.subsetname,因此可以在CASE语句中使用这两个值。

如果第二个值(header_to_node_4.subsetname)为空,我想要第一个值(header_to_node_5.subsetname)。如果第二个值是NOT NULL,我想使用第二个值。

我对如何获取第二个值感到困惑。我正在使用Greenplum / PostgreSQL 8.2

0 个答案:

没有答案