oracle學習筆記1

Oracle學習筆記:

1、操作符優先級:*、/、+、- ;乘除的優先級高於加減,同一優先級運算符從左向右執行,括號內的運算先執行。

2、連接符:|| ;把列與列,列與字符連接在一起,可以用來‘合成’列。

select p.person_code || '/' || p.person_name from app_person p
3、比較運算:=[等於]、>[大於]、>=[大於、等於]、<[小於]、<=[小於、等於]、<>[不等於] ;BETWEEN...AND...[在兩個值之間(包含邊界)]、IN(set)[等於值列表中的一個]、LIKE[模糊查詢]、IS NULL[空值] 。
4、模糊查詢like ,%代表一個或多個字符,_代表一個字符。

select * from app_person p where p.person_name like '_民%'


5、分組函數:AVG,COUNT,MAX,MIN,STDDEV,SUM

select avg(a.account_cost),
       STDDEV(a.account_cost),
       COUNT(*),
       MAX(a.account_cost),
       MIN(a.account_cost),
       SUM(a.account_cost)
  from eam_fa_asset a
 group by a.duty_dept_id

組函數忽略空值,NVL函數使分組函數無法忽略空值。

select avg(sa.apply_scrap_amt)
  from EAM_Fa_Scrap_Apply sa
 where sa.scrap_apply_id in (4541, 4542)

不能在WHERE子句中使用組函數,可以在HAVING子句中使用組函數。

select a.duty_dept_id, count(*)
  from eam_fa_asset a
having count(*) > 10
 group by a.duty_dept_id

6、多行子查詢:in,any,all

IN:等於列表中的任何一個
ANY:和子查詢返回的任意一個值比較,等同與最值比較
ALL:和子查詢返回的所有值比較,等同與最值比較

select sa.ACCOUNT_COST
  from EAM_Fa_Scrap_Apply sa
 where sa.ACCOUNT_COST < any (select a.account_cost
          from eam_fa_scrap_apply a
         where a.duty_dept_id = 1)
   and sa.duty_dept_id <> 1 --4665
select sa.ACCOUNT_COST
  from EAM_Fa_Scrap_Apply sa
 where sa.ACCOUNT_COST < (select min(a.account_cost)
                            from eam_fa_scrap_apply a
                           where a.duty_dept_id = 1)
   and sa.duty_dept_id <> 1 --4665






發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章