oracle GROUP 函數(AVG,COUNT,MAX,MIN,SUM,NVL,UID,USER,USERENV,DECODE)

时间:2021-09-18 20:33:20

oracle GROUP 函數(AVG,COUNT,MAX,MIN,SUM,NVL,UID,USER,USERENV,DECODE)

http://blog.blueshop.com.tw/pili9141/articles/52569.aspx

 

1 GROUP 函數 
2  
3 AVG([distinct|all]n) 
4  --◎ 獲得平均值 
5  --◎ 不包含null值 
6  
7  ex. 
8   select avg(欄1) aa from 資料表a; 
9  
10 COUNT(*|[distinct|all]expr) 
11  -- 獲得查詢出的筆數總和 
12  
13  ex. 
14   select count(*) aa from 資料表a; 
15   -- * 可換成 欄位名、distinct 欄位名 
16    
17 MAX([distinct|all]expr) 
18  --◎ 取得最大值 
19  --◎ 不包含null值 
20   
21  ex. 
22   select max(欄1) aa from 資料表a; 
23  
24 MIN([distinct|all]expr) 
25  --◎ 取得最小值 
26  --◎ 不包含null值 
27   
28  ex. 
29   select min(欄1) aa from 資料表a; 
30    
31 SUM([distinct|all]n) 
32  --◎ 計算總和 
33  --◎ 不包含null值 
34   
35  ex. 
36   select 欄1,sum(欄2) aa from 資料表a group by 欄1; 
37  
38 NVL(expr1,expr2) 
39  --expr1是null時,將expr2的值傳回 
40    
41  ex. 
42   select nvl(欄1,'無資料') aa from 資料表a; 
43  
44 UID、USER 
45  --◎ 取得使用者id及使用者名稱 
46  --◎ 得到的 user id 及 user name 為 oracle database 內所定義的 
47  
48  ex. 
49   select uid,user from dual; 
50  
51 USERENV(option
52  --◎ 取得使用者環境變數的設定值,此函數不可用於check子句中 
53  --◎ 若資料庫位於unix平台,下userenv('TERIMAL')指令可得到user terminal名稱 
54  
55  ex. 
56   select userenv('LANGUAGE'from dual; 
57  
58   USERENV('LANGUAGE'
59   ------------------------------------- 
60   TRADITIONAL CHINESE_*.ZHT16BIG5 
61    
62 DECODE() 
63  --多重置換 
64  --等於sql server、db2的case(http://blog.blueshop.com.tw/pili9141/articles/53513.aspx) 
65   
66  ex. 
67   select DECODE(欄1,'01','一','02','二','03','三'from 資料表a; 
68   --當欄1為01時,印出一,為02時,印出二,為03時,印出三