我有三个日期列--- dob
,colldate
,encounterdate
。
我想做这样的事情:
如果colldate不为null而不是'0000-00-00'则从dob中减去年,月,否则将计算dob的年份和月份。
然后遇到的列不是空的而不是'0000-00-00'然后从先前相减的日期中减去它,否则将计算dob的年份和月份。
有任何好方法可以通过查询来完成此任务。
基本上我想把这个条件逻辑从java代码转移到query.so我直接得到结果。
答案 0 :(得分:0)
coalesce()
函数返回其第一个参数,它不是null
。只要计算中涉及null
值,整个结果就为null
。因此我们只是颠倒逻辑。
SELECT COALESCE(
dob - interval year(colldate) year - month(colldate) month - interval year(encounterdate) year - interval month(encounterdate) month,
dob - interval year(colldate) year - month(colldate) month,
dob
)
FROM your_table