SQL如何取两列日期的最大值生成新的第三列
实现方案
首先修正你原查询的语法问题:TTT末尾多余的单引号需要删除。
要获取两个日期字段的最新值,直接使用SQL通用的GREATEST()函数即可,该函数会返回多个输入参数中的最大值,自动忽略NULL值。最终查询语句如下:
SELECT RCW, LCW, TTT, GREATEST(`Current last receipt`, `Historic last receipt`) AS `MAX Last Process Date` FROM RECC w2
兼容写法(针对不支持GREATEST的数据库,如低版本SQL Server)
可以用CASE语句手动判断大小实现相同逻辑:
SELECT RCW, LCW, TTT, CASE WHEN `Current last receipt` >= `Historic last receipt` THEN `Current last receipt` ELSE `Historic last receipt` END AS `MAX Last Process Date` FROM RECC w2
注意:字段名包含空格时,需要根据你使用的数据库调整标识符包裹符号:MySQL用反引号
`,SQL Server用方括号[],Oracle用双引号"。
内容的提问来源于stack exchange,提问作者JeremyU
相关产品推荐
相关产品推荐

