SQL:DB2 3列(日,月,年)上日期的最大值和最小值

时间:2017-05-09 16:23:51

标签: sql db2 max

我正在研究SQL DB2,我想用一次最大值的日期检索字段,但日期是三列(日,月,年)。

你能帮帮我吗?

非常感谢。

3 个答案:

答案 0 :(得分:0)

请试用此代码:

select distinct year, month, day
from (
    select year, month, day, rank() over(order by year desc, month desc, day desc) as rn
    from [your table name]
) t
where rn = 1

<强> UPDATE1: 如果您有一些合同编号的字段,那么您需要在 over()

中使用 partition by 语句
select distinct contract_number, year, month, day
from (
    select contract_number, year, month, day, rank() over(partition by contract_number order by year desc, month desc, day desc) as rn
    from [your table name]
) t
where rn = 1

答案 1 :(得分:0)

您可以执行以下操作。但是您需要使用您在日,月,年格式中使用的格式更改以下查询。

select * from urtable where to_date(year||'-'||month||'-'||day,'yyyy-mon-dd') in 
(select max(to_date(year||'-'||month||'-'||day,'yyyy-mon-dd'))) from urtable )

答案 2 :(得分:0)

select * from yourtable
order by colyear desc, colmonth desc, colday desc
fetch first rwos only