【发布时间】:2016-01-22 05:51:48
【问题描述】:
我目前正在使用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) 为 NULL,我想要第一个值 (header_to_node_5.subsetname)。如果第二个值不为空,我想使用第二个值。
我不知道如何获取第二个值。我正在使用 Greenplum/PostgreSQL 8.2
【问题讨论】:
-
使用massive CASE。
标签: postgresql null case coalesce greenplum