sql語句order by和union聯合使用

2021-06-23 01:00:43 字數 571 閱讀 6765

今天在產看查詢結果的時候,發現乙個問題,展現未按照既定的順序排列,看sql日誌未報錯,詳細看了下sql介紹才發現問題

如果是需要對於union後的結果進行order by 那麼sql語句的寫法應該是

(select * from a where name="" )

union 

( select * from a where id="")

order by age

但是如果是想要對於單獨的sql結果進行排序

sql語句寫法如下

(select a from tbl_name where a=10 and b=1 order by a limit 10)

union

(select a from tbl_name where a=11 and b=2 order by a limit 10);

另外注意:圓括號中用於單個sql語句的order by只有當與limit結合後,才起作用。否則,order by被優化去除。

因為order  by 和union聯合使用時,只有最後的order by 起作用。

SQL語句 ORDER BY排序

當查詢資料庫裡的資料時,為了使資料不那麼凌亂,我們可以對資料進行排序處理 排序格式 order by 字段預設公升序 order by 字段 asc公升序 order by 字段 desc降序 snos name gender ageheight speciality 1001張三男 181.78 ...

SQL語句之ORDER BY子句

在sql中可以使用order by子句對查詢的結果進行排序。例 現在使用查詢全部的語句查詢表 emp中的所有內容。l select from emp 輸出如下 此時,從查詢結果可以發現,是按照雇員的編號進行排序的,那麼此時如果要對使用指定的列進行排序,則就必須使用order by子句。語法格式如下 ...

優化orderby語句

資料庫排序在很多業務系統都有這方面的硬性要求,但是很多情況下大資料表的排序查詢很是緩慢,查了下資料,現在總結如下 可以適當調大 sort area size 的值 10240000 10m alter system set sort area size 10240000 scope spfile 在...