濮阳杆衣贸易有限公司

主頁 > 知識庫 > union組合結(jié)果集時的order問題

union組合結(jié)果集時的order問題

熱門標(biāo)簽:菏澤語音電銷機器人加盟公司 分享百度地圖標(biāo)注多個位置 地圖標(biāo)注牌 外呼系統(tǒng)改進(jìn) 電銷機器人公司 需要哪些牌照 長沙智能外呼系統(tǒng) 湖南電腦外呼系統(tǒng)平臺 知名電銷機器人價格 廣東防封卡外呼系統(tǒng)原理是什么
近日,在一個項目中用到union組合兩個select結(jié)果,調(diào)試sql時總是報錯,所報錯誤也只是說在union附近有問題,因為sql中用到了group,我想也許是union不支持吧,由于時間緊,就先在程序中做了合并處理。但程序員對于代碼的完美性要求總是不能放棄的,所以,常常會有如鯁在喉的感覺,不搞明白心里會不舒服。

仔細(xì)查看了MS的在線幫助,在有關(guān)UNION的描述中找到這樣一段說明:

如果使用 UNION 運算符,那么各個 SELECT 語句不能包含它們自己的 ORDER BY 或 COMPUTE 子句。而只能在最后一個 SELECT 語句的后面使用一個 ORDER BY 或 COMPUTE 子句;該子句適用于最終的組合結(jié)果集。只能在各個 SELECT 語句中指定 GROUP BY 和 HAVING 子句。

在這段說明中并沒有說union不能用于group,而是說在各個Select中不能包含order by,而在我的語句中恰恰就有這個,看來是我猜錯了。試了一下把order去掉,果然不會報錯了。也就是說,使用union的時候,各查詢group是可以的,但不能order或compute。那如果說非要group,有沒有辦法呢?正常情況下只能在最后使用,而且是針對組合后的結(jié)果集進(jìn)行排序的,而我剛才所說的group,就不能用于最終結(jié)果集,而只能用于每個查詢。

這是正常的用法,有些人想在每個查詢中先排序,然后再union,也有非正常的用法,類似:

select * from (select a from [table] order by a) union ...

另外,union后面還可以加上all,在默認(rèn)情況下,union時會刪除重復(fù)的項,如果加上all則不進(jìn)行篩選,組合所有的結(jié)果。如果能確定各查詢結(jié)果不會有重復(fù)的項,最好就帶上all,因為這樣還是可以提高一些效率的。
您可能感興趣的文章:
  • sql 查詢結(jié)果合并union all用法_數(shù)據(jù)庫技巧
  • SQLSERVER中union,cube,rollup,cumpute運算符使用說明
  • mySQL UNION運算符的默認(rèn)規(guī)則研究
  • sql Union和Union All的使用方法
  • union這個連接是有什么用的和INNER JOIN有什么區(qū)別
  • MySQL union 語法代碼示例分析
  • 數(shù)據(jù)庫中union 與union all 的區(qū)別

標(biāo)簽:珠海 天水 泉州 美容院 福建 商洛 呼和浩特 西寧

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《union組合結(jié)果集時的order問題》,本文關(guān)鍵詞  union,組合,結(jié)果,集時,的,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《union組合結(jié)果集時的order問題》相關(guān)的同類信息!
  • 本頁收集關(guān)于union組合結(jié)果集時的order問題的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    墨脱县| 信阳市| 万山特区| 天长市| 沅江市| 扶绥县| 内乡县| 伊金霍洛旗| 隆化县| 绥德县| 潮州市| 通州市| 昂仁县| 邳州市| 六枝特区| 灯塔市| 寿宁县| 界首市| 菏泽市| 淮阳县| 威海市| 宜宾市| 紫阳县| 大厂| 迭部县| 中卫市| 佛教| 陇西县| 嘉峪关市| 东莞市| 温州市| 克拉玛依市| 甘肃省| 天长市| 通州区| 潞西市| 藁城市| 江西省| 电白县| 曲水县| 武安市|