按顺序报告下一个日期

时间:2015-03-16 17:01:51

标签: sql

我们的数据库仅记录每月收到的5笔结算付款。如何编写一个选择语句,按顺序查看每个付款日期,如果输入日期以继续下一次付款等等,那么最终会遇到一个空字段并报告该日期日期?

我尝试过以下案例陈述,但认为我走错了轨道;

select db.identifier,
case when recdate1 is not null then recdate1 
when recdate2 is not null then recdate2
when recdate3 is not null then recdate3 end  

来自db

1 个答案:

答案 0 :(得分:3)

您应该使用COALESCE功能。 COALESCE函数将接受n个输入字段,并从左到右返回第一个NOT NULL输入字段。换句话说,如果将recdate字段从recdate1排序到recdate 5,它将返回第一个NOT NULL字段。

以下是实现此目的的代码。

SELECT db.identifier
        , COALESCE(recdate1, recdate2, recdate3, recdate4, recdate5) AS recdate
  FROM mytable

以下是COALESCE功能的链接以获取更多信息。希望这会有所帮助。

https://msdn.microsoft.com/en-us/library/ms190349.aspx