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提供的函數或是使用者自訂函數 |
浙公网安备 33010602011771号