数据库学习笔记——03排序检索数据
2018-09-18 本文已影响9人
Love零O
排序数据_ORDER BY
SELECT prod_name from products ORDER BY prod_name
order_by.pngORDER BY必须是select语句的最后一个子句。
通常,ORDER BY 子句中使用的列将是为显示而选择的列。但是,实际上并不一定要这样,用非检索的列排序数据是完全合法的。比如:
SELECT prod_name from products ORDER BY prod_price;
按多个列排序
SELECT prod_id,prod_price,prod_name FROM products ORDER BY prod_price,prod_name
按列位置排序
SELECT prod_id,prod_price,prod_name FROM products ORDER BY 2,3
SELECT清单中指定的是选择列的相对位置而不是列名。ORDER BY 2表示按SELECT清单中的第二个列prod_price进行排序。ORDER BY 2,3表示先按prod_price,再按prod_name进行排序。
- 优点:不用重复输入列名
- 缺点:(1)不明确给出列名有可能造成错用列名排序。(2)在对SELECT清单进行更改时容易忘记ORDER BY做相应的修改。(3)如果进行排序的列不在SELECT清单中,显然不能使用。
提示: 按非选择列进行排序
当根据不出现在SELECT清单中的列进行排序时,不能采用这项技术。但是,如果有必要,可以混合使用实际列名和相对位置。比如:SELECT prod_id,prod_price,prod_name FROM products ORDER BY 2,vend_id
指定排序方向
查询结果默认是升序——ASC(ascending的缩写)
如果需要将查询结果按降序来排序,需要使用关键字DESC(descending的缩写)
SELECT prod_id,prod_price,prod_name FROM products ORDER BY prod_price DESC
按多个列排序:
SELECT prod_id,prod_price,prod_name FROM products ORDER BY prod_price DESC,prod_name
desc2.png
DESC关键字只应用到直接位于其前面的列名。如果想在多个列上进行降序排序,必须对每一个列指定DESC关键字
SELECT prod_id,prod_price,prod_name FROM products ORDER BY prod_price DESC,prod_name DESC