UNION 查詢結果排序

2021-08-27 13:13:17 字數 593 閱讀 6635

今天想統計幾個結果資料,於是用到了union關鍵字

select count(1) from xx_a

union

select count(1) from xx_b

union

select count(1) from xx_c

這樣查詢的結果會預設按公升序排列,也就是a表的結果可能排在最後。

通過檢視文件,union是對結果集進行並集操作,不包括重複行,同時進行預設規則的排序,所以這就導致查詢出來的結果沒有按照我們預期來顯示。

那麼既然他按照預設的規則排序,那麼就給他加個字段上去,如:

select 1 as sort ,count(1) from xx_a

union

select 2 as sort, count(1) from xx_b

union

select 3 as sort, count(1) from xx_c

order by sort asc

這樣出來的結果就會按照預期的結果來進行顯示了,當然as sort 和order by也可以不需要,預設是公升序進行排列的。

union 聯合 合併查詢結果

select id,name,price from shops where price 150 union select id,name,price from shops where price 50 作用 把兩次或多次查詢結果合併在一起,可以來自多張表,多次sql 語句時取出的列明不同,此時以第乙...

UNION 查詢中的排序

mssql 不允許在union查詢中使用 order by 因此,當我們需要這種功能的時候,就需要繞一些彎路.比如有一張學生表student 和教師表 teacher 我們要查詢所有的教師學生的姓名和年齡,教師排前面,學生排後面,分別按字母順序,則可能會想寫乙個這樣的sql語句 注意,這個語句只是為...

排序顯示查詢結果

在查詢語句的最後加上order by 列名,就會按照這個列排序,預設公升序 如果要規定公升序,則在列名後面加上asc。若要規定降序,則加上desc 同時,order by後面可以有不止乙個列,則先按前面的列排序,前面一列的值相同時按後面的列排序 例,有乙個表為sg,內容如下 name gradeno...