如何在postgresql中只输出非NULL值?

时间:2014-02-12 15:11:01

标签: postgresql

我有下表

seq_id | value| data 
-------------------------
 1     | 10   | true
 1     | 11   | false
 1     | 12   | true
 2     | 13   | false
 2     | 14   | 
 2     | 15   | true

我希望带有seq_id的结果输出与数据为真的值

select rs.seq_id , array_to_string(array_agg (CASE when rs.data='TRUE' then rs.value else NULL END), ', ')  as demo
    from my_table.record_set  rs 
    group by seq_id order by seq_id 

上述查询导致所有值包括NULL 如何只将Non NULL值作为输出?

1 个答案:

答案 0 :(得分:1)

把它放在“from”之后:

WHERE rs.data IS NOT NULL

编辑:使用“where”子句选择所需的行。通常“where”子句放在“from”子句之后。如果您只想获取“data”为true的行,那么您可以输入:

where rs.data = TRUE 

因为它们是布尔值,所以只需:

即可
where rs.data