SQL子句


以下是一些覺的SQL子句:

1. GROUP BY

  • SQL GROUP BY語句用於將相同的資料排列到分組中。 GROUP BY語句與SQL SELECT語句一起使用。
  • GROUP BY語句在SELECT語句中跟隨WHERE子句,並在ORDER BY子句之前。
  • GROUP BY語句與聚合函式一起使用。

語法

SELECT column  
FROM table_name  
WHERE conditions   
GROUP BY column  
ORDER BY column

假設有一個表:PRODUCT_MAST ,它的結構和資料記錄如下所示 -

PRODUCT COMPANY QTY RATE COST
Item1 Com1 2 10 20
Item2 Com2 3 25 75
Item3 Com1 2 30 60
Item4 Com3 5 10 50
Item5 Com2 2 20 40
Item6 Cpm1 3 25 75
Item7 Com1 5 30 150
Item8 Com1 3 10 30
Item9 Com2 2 25 50
Item10 Com3 4 30 120

範例

SELECT COMPANY, COUNT(*)  
FROM PRODUCT_MAST   
GROUP BY COMPANY;

執行上面語句,得到結果如下 -

Com1   5
Com2   3
Com3   2

2. HAVING子句

  • HAVING子句用於指定分組或聚合的搜尋條件。
  • 需要在GROUP BY子句中使用,如果沒有使用GROUP BY子句,那麼可以像使用WHERE子句一樣使用HAVING函式。

語法:

SELECT column1, column2   
FROM table_name  
WHERE conditions   
GROUP BY column1, column2   
HAVING conditions  
ORDER BY column1, column2;

範例

SELECT COMPANY, COUNT(*)  
FROM PRODUCT_MAST   
GROUP BY COMPANY  
HAVING COUNT(*)>2;

執行上面語句,得到結果如下 -

Com1   5
Com2   3

3.ORDER BY子句

  • ORDER BY子句按升序或降序對結果集進行排序。
  • 它預設按升序對記錄進行排序。 DESC關鍵字用於按降序對記錄進行排序。

語法:

SELECT column1, column2  
FROM table_name  
WHERE condition  
ORDER BY column1, column2... ASC|DESC;

其中,

  • ASC:用於按表示式按升序對結果集進行排序。
  • DESC:它按表示式按降序對結果集進行排序。

範例: 按升序排序結果

假設有一個 CUSTOMER 表,它的結構和資料記錄如下 -

CUSTOMER_ID NAME ADDRESS
12 Kathrin US
23 David Bangkok
34 Alina Dubai
45 John UK
56 Harry US

執行以下SQL語句:

SELECT *  
FROM CUSTOMER  
ORDER BY NAME;

得到以下結果 -

CUSTOMER_ID NAME ADDRESS
34 Alina Dubai
23 David Bangkok
56 Harry US
45 John UK
12 Kathrin US

範例:按降序排序結果
基於上面的CUSTOMER表,執行下面SQL語句 -

SELECT *  
FROM CUSTOMER  
ORDER BY NAME DESC;

得到以下結果 -

CUSTOMER_ID NAME ADDRESS
12 Kathrin US
45 John UK
56 Harry US
23 David Bangkok
34 Alina Dubai