兩條sql語句union排序,SQL語句中UNION排序問題

2022-02-09 13:45:48 字數 4282 閱讀 6624

1樓:齊文

order by 放裡面

select starttime,endtime from (select * from table order by starttime asc ) where endtime>getdate()

union

select starttime,endtime from (select * from table order by starttime asc ) where endtime

2樓:匿名使用者

select * from(

select starttime,endtime from table where endtime>getdate()

union

select starttime,endtime from table where endtime

by order by a.starttime asc

3樓:2010小櫻

你想要什麼樣的?實現什麼樣的效果?

4樓:匿名使用者

兄弟,我大致看了下是什麼意思。按照你這麼寫不看語法問題。這就是查詢除今天外的全部資料

如果想查期間可以寫到一條。查詢條件用i。and然後排序就可以比如資料為1、2、3、4、5條件是3

你這麼寫的結果是4、5、2、1

sql語句中union排序問題

5樓:匿名使用者

**改寫如下:

select a.輸出欄位1, a.輸出欄位2, a.輸出欄位3, ...a.輸出欄位n from

(select * ,1 as px from 表a where 軟體名稱 like '%迅雷%'

union

select * ,2 from 表a where 軟體簡介 like '%迅雷%') a order by a.px

如果不在意多出一個用於排序的欄位「px」的話,**可簡化如下

select * ,1 as px from 表a where 軟體名稱 like '%迅雷%' order by 1

union

select * ,2 from 表a where 軟體簡介 like '%迅雷%'

***注意,因人為增加了一個排序用數字欄位(第一個查詢用1,第二個用2),union關鍵字的刪除兩個查詢之間重複資料的功能會不起作用,如果需要保持刪除重複記錄的能力,則需要使用distinc關鍵字,例如:

select distinct a.輸出欄位1, a.輸出欄位2, a.輸出欄位3, ...a.輸出欄位n from

(select * ,1 as px from 表a where 軟體名稱 like '%迅雷%'

union

select * ,2 from 表a where 軟體簡介 like '%迅雷%') a order by a.px

上機試一試吧

sql語句的問題,union後排序排出來 總是亂的。要實

6樓:

樓主好,我大致懂你的意思,你應該是想要把兩個子查詢的資料合併後,然後再排序的。而你的排序出來不對的原因是你在你的兩個子查詢當中分別做了排序。那麼資料庫執行後的結果就會是排序後再合併。

所以你總是覺得是亂的。你先把子查詢合併,然後在b表後面合併就不會這樣子了。只用一個order by就可以了。

在mysql中使用union,兩邊的sql語句可以進行order by排序嗎?

7樓:

子查詢一般是不建議orderby的 可以union之後在orderby

如果有要求需要子查詢orderby的回話答可以對著需要orderby的sql select top 一下例如:select top 1000 * from a orderby id

union

select top 1000 * from a orderby name

8樓:匿名使用者

select * from 表名稱 union select * from 表名稱 order by 欄位名稱 desc

前提是2個表的結構一模一樣

9樓:匿名使用者

只能在語句最後使用order by,也就是對最後的結果排序

sql用了union後的排序問題

10樓:匿名使用者

select * from

(select userid from usertable where userid in (201,202)

union

select userid from usertable where userid in (101,102,301,302)

) as a

order by userid

11樓:匿名使用者

select userid from usertable where userid in (201,202)

union

select userid from usertable where userid in (101,102,301,302)

這樣不就可以了嘛

sql語句中union排序問題?

12樓:匿名使用者

**改寫如下:

select a.輸出欄位1, a.輸出欄位2, a.輸出欄位3, ...a.輸出欄位n from

(select * ,1 as px from 表a where 軟體名稱 like '%迅雷%'

union

select * ,2 from 表a where 軟體簡介 like '%迅雷%') a order by a.px

如果不在意多出一個用於排序的欄位「px」的話,**可簡化如下

select * ,1 as px from 表a where 軟體名稱 like '%迅雷%' order by 1

union

select * ,2 from 表a where 軟體簡介 like '%迅雷%'

***注意,因人為增加了一個排序用數字欄位(第一個查詢用1,第二個用2),union關鍵字的刪除兩個查詢之間重複資料的功能會不起作用,如果需要保持刪除重複記錄的能力,則需要使用distinc關鍵字,例如:

select distinct a.輸出欄位1, a.輸出欄位2, a.輸出欄位3, ...a.輸出欄位n from

(select * ,1 as px from 表a where 軟體名稱 like '%迅雷%'

union

select * ,2 from 表a where 軟體簡介 like '%迅雷%') a order by a.px

上機試一試吧

sql 使用union後結果集排序,無法理解

13樓:匿名使用者

由於union需要對查詢結果集進行排序操作,當資料量較大時,若非特殊需要,儘量不要使用union操作,

用union all操作,然後對union all出來的結果執行去重操作即可,所以結果不一樣

-- union all

select '張三' name

union all

select '李四'

union all

select '王五'

union all

select '王五'

union all

select '蘋果' address

union all

select '香蕉'

union all

select '橘子'

-- result

張三李四

王五王五

蘋果香蕉

橘子-- union

select '張三' name

union all

select '李四'

union all

select '王五'

union all

select '王五'

union

select '蘋果' address

union all

select '香蕉'

union all

select '橘子'

-- result

李四蘋果

王五張三

香蕉橘子

oracle的sql的select語句中有limit嗎

limit是mysql裡的,select from a order by b limit 6,1,取得按b排序的第6行a的值 而在oracle中想要實現是通過rownum select from a where rownum 6 order by b rownum是一個序列,是oracle資料庫從資...

求一條sql語句

求score總和 select sum score from tablename求最大userid select max userid from tablename 你的意思沒說明白,是要求最大userid對應的score總和。select userid,sum score from tablena...

求一條sql語句

能夠實現,先查詢出兩條置頂的 然後再根據結果查普通的,declare fastness intset fastness 2 這裡是你的固定新聞數量。declare sql varchar 1000 set sql select top fastness from table union all se...