oracle 查询结果升序,Oracle学习日志-8(查询结果排序)
要用到的表如下
書上寫到,上面的查詢結果排序是隨機的,再執行幾次結果可能不同,但是我執行多次后,查詢結果的排序都是如此,是因為oracle的默認處理方式是按照物理儲存順序查詢的,而我在插入記錄的時候都是按照id順序插入的,所以查詢出來的結果好像是按照id來排序的一樣,實際上并不是。
如果要對查詢結果排序,可以使用ORDER BY子句。
ORDER BY:
SELECT ...
FROM
ORDER BY ...;
例如按照售價從高到低排序查詢結果:
SELECT *
FROM Product
ORDER BY sale_price DESC;
如果是從低到高,就把DESC換成ASC。如果ORDER BY子句沒有指定排列順序,默認使用升序排序。
如果排序基準列有相同的值,那么相同的值排序順序又會隨機。那么可以指定多個排序基準列,查詢結果會優先按照左邊的標準排序,如果一樣,再考慮右邊的標準。如
SELECT *
FROM Product
ORDER BY sale_price ,product_id;
這樣就會優先按照售價的升序排列,如果售價一樣,就按照商品id排序。
如果排序鍵中有NULL值,那么含NULL的記錄會在結果開頭或者結尾匯總,oracle是在查詢結果開頭匯總。
列編號:
列表號是指SELECT子句的列按照從左到右的編號。ORDER BY子句可以通過列編號排序,如
SELECT product_id,product_name, sale_price
FROM Product
ORDER BY 3 DESC;
但是不推薦這樣用,因為閱讀很麻煩。而且該功能以后可能會被刪除。
注意:
ORDER BY可以使用別名,但是GROUP不能使用別名。因為SELECT的語句執行順序其實是:
FROM——WHERE——GROUP BY——HAVING——SELECT——ORDER BY
設置別名是在SELECT這里設置的,所以在它之前的GROUP BY是不能使用別名的。
總結
以上是生活随笔為你收集整理的oracle 查询结果升序,Oracle学习日志-8(查询结果排序)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 脉位调制解调 matlab,通信原理与m
- 下一篇: 图像语义分割_图像语义分割(9)-Dee