SQL 指令 (select)

SQL 指令 (select)

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

 

1 select  
2 --◎ 查詢資料庫中資料,結尾需加上「;」 
3  
4 查詢所有欄位 * 
5 1. select * from 資料表a 
6 --◎ 查詢資料表a所有欄位,欄位順序為建表格時之順序 
7  
8 查詢多欄 
9 2. select 欄1 a,欄2 b from 資料表a 
10 --◎ 查詢資料表a的欄位1,並給別名為a、欄位2給別名為b 
11 --◎ 顯示結果的欄位名稱為別名的名稱 
12  
13 where 條件 
14 3. select 欄位 from 資料表a where 條件1 and 條件2 or 條件3 
15 --◎ 查詢資料表a的欄位,需符合條件1和條件2,或符合條件3 
16  
17 order 排序 
18 4. select 欄1,欄2 from 資料表a where 條件 order by 欄2 
19 --◎ 查詢資料表a符合條件的欄位1、2的值,並以欄2做排序 
20 --◎ 排序的欄位可以欄位順序的數字替代,此例可寫成 order by 2 
21 --◎ 排序預設由小到大,若要由大到小需加上desc,此例可寫成 order by 2 desc 
22 --◎ 多欄排序,此例可寫成 order by 欄2,欄1 ,當欄2順序相同時,再以欄1做比較 
23  
24 group by 群組 
25 5. select 欄1,欄2 from 資料表a where 條件 group by 欄1,欄2 
26 --◎ 查詢資料表a符合條件的欄位1、2的值,並將欄1、2相同的資料列做群組 
27  
28 ex. 
29  欄1    欄2 
30 ---------------- 
31   A      B  
32   A      C 
33   A      B 
34    
35 select 欄1,欄2 from 資料表a group by 欄1,欄2; 
36  
37  欄1    欄2 
38 ---------------- 
39   A      B  
40   A      C 
41  
42 --◎ group by 的欄位不一定列於select 之後 
43  
44 having 篩選group 
45 6. select 欄1,max(欄2) from 表a,表b  
46    where a.欄1 = b.欄1  
47    group by a.欄1  
48    having max(欄2) >= 500 
49  
50 --◎ 查詢表a、表b,以表a的欄1和表b的欄1做關聯,查詢資料中欄2最大值,並做群組, 
51 --   群組後的資料,再篩選欄2的條件需>=500 
52 --◎ 主要是搭配gropu by ,可篩選group function 
53  
54 case 處理符合條件之欄位值 
55 7. select 欄1,欄2, 
56         (case when 欄2 is null then '沒資料' 
57               when 欄2 = '00' then 欄2 end
58    from  資料表a 
59  
60 --◎ 查詢資料表a的欄1、欄2,若欄2是null則查詢出來的欄位值顯示「沒資料」, 
61 --   若查詢的欄2等於00,則查出來的欄位值不變 
62  
63 8. select 欄1,欄2, u_max(欄1,欄2) from 資料表a 
64 --◎ 從資料表a中查詢欄1、欄2,並將欄1、2的欄位值當參數代入自訂function「u_max」中運算 
65 --◎ sql中可使用oracle提供的函數或是使用者自訂函數 

posted @ 2010-02-03 18:48  hellofei  阅读(383)  评论(0编辑  收藏  举报