第3课、排序检索数据
排序数据
OEDER BY:排序
进行排序
1)按单个列排序 |
需求: 以 prod_name 字段按照字母顺序排序
SELECT prod_name
FROM Products
ORDER BY prod_name;
-- 以 prod_name 列按照字母顺序排序
输出结果:
2)按多个列排序 |
需求:如果 prod_price 值相同(先按默认升序排序),才按prod_name 值排序
SELECT prod_id,prod_price,prod_name
FROM Products
ORDER BY prod_price,prod_name;
-- 如果 prod_price 值相同,才按prod_name 值排序
输出结果:
3)按列位置排序 |
需求:先按 prod_price ,再按 prod_name 排序
SELECT prod_id,prod_price,prod_name
FROM Products
ORDER BY 2,3;
-- 先按 prod_price ,再按 prod_name 排序
输出结果:
输出结果跟“ 2)按多个列排序 ”的结果相同。
4)指定排序方向 |
SELECT prod_id,prod_price,prod_name
FROM Products
ORDER BY prod_price DESC;
输出结果:
5)使用多个列排序来降序排序 |
需求:prod_price 以降序排序,prod_name 默认升序排序
SELECT prod_id,prod_price,prod_name
FROM Products
ORDER BY prod_price DESC,prod_name;
-- prod_price 以降序排序,prod_name 默认升序排序
输出结果:
总结
OEDER BY:排序
SELECT 列
FROM 表
ORDER BY 列;
SELECT 列1,列2,列3
FROM 表
ORDER BY 列2,列3;
-- 先按列2值升序排序,再根据列2相同值里的项,按列3升序排序
SELECT 列1,列2,列3
FROM 表
ORDER BY 2,3;
-- 2 和 3 代表的是 SELECT 中的列2和列3
-- 也就是ORDER BY 设置数字范围在1~3(SELECT 枚举的列数),超出该范围的值会提示语法错误。
细节区别:
ORDER BY 列2,列3;(是根据表里的列来排序,即便 SELECT 中没有枚举出,也照样正常输出结果)
ORDER BY 2,3;(是根据SELECT 枚举的列数来排序)
DESC:降序
SELECT 列
FROM 表
ORDER BY 列 DESC;
SELECT 列1,列2
FROM 表
ORDER BY 1 DESC,2;