SQL子句
精华
小牛编辑
165浏览
2023-03-14
以下是一些觉的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 |