with TT as
(select distinct h.time, h.title name, h.reference_number content, h.type,
(to_date(to_char(sysdate, 'yyyy-mm-dd'), 'yyyy-mm-dd') -
to_date(to_char(h.time, 'yyyy-mm-dd'), 'yyyy-mm-dd')) / 365 AS year
from Security_Portrait_Honorary h where h.id_card = ? order by h.time desc)
select * from TT
where (type = '国家级奖励' and year < 5)
or (type = '总公司奖励' and year < 3)
or (type in ('集团公司奖励', '省部级奖励', '段奖励', '其他') and year < 1);
解析:
该SQL的要查询发现重大事故奖励中的数据,条件:如果是“国家级奖励”查询出5年内的数据,如果是“总公司奖励”查询出3年内的数据,其它的则是1年内的数据。