我正在研究SQL DB2,我想用一次最大值的日期检索字段,但日期是三列(日,月,年)。
你能帮帮我吗?
非常感谢。
答案 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