oracle中with as的使用

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年内的数据。

猜你喜欢

转载自blog.csdn.net/u013199013/article/details/81256490
今日推荐