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

上一篇: SQL子查詢 下一篇: SQL聚合函數