我们的数据库仅记录每月收到的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
答案 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功能的链接以获取更多信息。希望这会有所帮助。