2

我是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
??

我被困在那里。

任何帮助表示赞赏。谢谢。

4

1 回答 1

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

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

于 2013-10-28T02:51:24.577 回答