我目前正在使用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