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年內的資料。
Oracle中的with as語法
with as語句是乙個子查詢,使用它可以增強sql的可讀性,當查詢中多次用到某一部分時,可以使用該語句建立乙個公共的臨時表並將結果儲存在使用者臨時表空間中,可以多次引用避免了重複解析,從而增強了效能,執行效率會提高不少。臨時表在一次查詢結束後自動清除。一起來看乙個簡單的例子 with cs1 as...
Oracle中With As 的使用方法
with as 關鍵字,是以 with 關鍵字開頭的sql語句,在實際工作中,經常會遇到查詢語句大部分相同的sql語句,這時就可以將相同的sql語句抽取出來,使用with as定義,以便提高sql的查詢效率和 的簡潔。抽取出來多次使用 with as 可以理解為一張臨時表或者理解成sql片段,在多次...
SQL 中With as 的用法
一 with as的含義 with as短語,也叫做子查詢部分 subquery factoring 可以讓你做很多事情,定義乙個sql片斷,該sql片斷會被整個sql語句所用到。有的時候,是為了讓sql語句的可讀性更高些,也有可能是在union all的不同部分,作為提供資料的部分。特別對於uni...