如何在postgres中找到第一个空值?

时间:2013-10-28 02:20:00

标签: sql postgresql

我是postgres的新手。

我有字段(标题)如下:

Title      Date1        Date2        Date3        Date4        Date5   Date6

Vaccine1   01/08/1980   01/08/1981   01/08/1982   01/08/1983   Null    Null

我有工作的情况,我需要找出第一个空值。在上面的例子中,它应该是基于标题的Date5。 我还有其他一些需要检查的条件。但这将是我的主要案例。

我正在尝试做以下事情:

case
when title ='AAA'
and
??

我被困在那里。

感谢任何帮助。感谢。

1 个答案:

答案 0 :(得分:2)

如果您想知道哪个列具有第一个NULL,那么您可以执行以下操作:

case when date1 is null then 'date1'
     when date2 is null then 'date2'
     when date3 is null then 'date3'
     when date4 is null then 'date4'
     when date5 is null then 'date5'
     when date6 is null then 'date6'
     else null
end

演示:http://sqlfiddle.com/#!1/6fd74/1

请注意,when中的case按列出的顺序进行检查,执行在第一个匹配的when处停止,因此此结构将告诉您第一个非NULL列(当然假设when s的顺序正确。)