如果指定了 SELECT DISTINCT,那麼 ORDER BY 子句中的項就必須出現在選擇列表中。(解決方法及原因分析)
解決辦法:sqlserver中如果同時用order by和distinct,那order by後面的欄位就必須出現在selcet的欄位中。這個問題只有在sqlserver中才會有,mysql中是不會有這個問題的。
如果這樣寫會提示錯誤:
select distinct name from user order by id
應該這樣寫:
select distinct id,name from user order by id
為什麼會出現這種情況?我們來看下原因:
distinct自帶排序功能,會先按照distinct後面的欄位進行排序,而order by是可以改變distinct自帶的排序,所以原因其實就是一個執行先後順序問題,沒有distinct時,order by先執行,select後執行,有了distinct,selcet distinct先執行,order by後執行,如果select distinct執行完後,去除了相應欄位,所以order by就沒法排序了。
如果你不明白distinct是怎麼排序和去重複的,去看下SQL的執行計劃就明白了。
相關推薦
如果指定了 SELECT DISTINCT,那麼 ORDER BY 子句中的項就必須出現在選擇列表中。(sqlserver中)
1:sqlserver中如果用order by,同時用了distinct的話,order by後面的欄位就必須出現在selcet的欄位中。 select distinct FullName from users order by Id 上述 SQL 語句是不對的,
如果指定了 SELECT DISTINCT,那麼 ORDER BY 子句中的項就必須出現在選擇列表中。(解決方法及原因分析)
解決辦法:sqlserver中如果同時用order by和distinct,那order by後面的欄位就必須出現在selcet的欄位中。這個問題只有在sqlserver中才會有,mysql中是不會有這
除非同時指定了 TOP,否則 ORDER BY 子句在檢視、內嵌函式、派生表和子查詢中無效。
在sql server 2000中,報錯:”除非同時指定了 TOP,否則 ORDER BY 子句在檢視、內嵌函式、派生表和子查詢中無效。“,如果實在要用 ORDER BY ,但是又不能指定確定的TOP資料時,怎麼辦呢? 解決方案: 使 用 TOP 100 PERCENT (
LINQ排序,用order by 子句進行排序
在LINQ中,orderby子句可以同時指定多個排序元素,還可以為每個排序元素指定獨立的排序方式。orderby語句後的第一個的排序元素為主要排序,第二個位次要排序,依次類推,如下所示,將所有學生首先按照姓名的字元數從少到多排序,其次按照學生年齡從高到低排序
sql 異常<除非另外還指定了 TOP、OFFSET 或 FOR XML,否則,ORDER BY 子句在視圖、內聯函數、派生表、子查詢和公用表表達式中無效。>
select sel top percent 異常 子句 cor 查詢 表達 問題:當子查詢內存在ORDER BY 字句時查詢會報錯 SQL: SELECT * FROM ( SELECT * FROM USER ORDER BY USER_CORD ) S. 解
sql:除非另外還指定了 TOP 或 FOR XML,否則,ORDER BY 子句在檢視、行內函數、派生表、子查詢
執行sql語句: select * from ( select * from tab where ID>20 order by userID desc ) as a order by date desc 邏輯上看著挺對 但是報錯: 除非另外還指定了 TO
針對sql錯誤:“除非另外還指定了 TOP 或 FOR XML,否則,ORDER BY 子句在檢視、行內函數、派生表、子查詢和公用表表達式中無效”的原理與解決
執行sql語句: select * from ( select * from tab where ID>20 order by userID desc ) as a order by date desc 邏輯上看著挺對 但是報錯: 除非另
除非另外還指定了 TOP 或 FOR XML,否則,ORDER BY 子句在視圖、內聯函數、派生表、子查詢和公用表表達式中無效
condition 分組 gif 篩選器 使用 外部 如果 代碼 con SQL 不同於與其他編程語言的最明顯特征是處理代碼的順序。在大數編程語言中,代碼按編碼順序被處理,但是在SQL語言中,第一個被處理的子句是FROM子句,盡管SELECT語句第一個出現,但是幾乎總是
c# 使用UdpClient並指定了本地埠,用完之後需要關閉
public class UDPSend { System.Net.Sockets.UdpClient UDP_C; //用於請求的UDP實列 //建構函式 public UDPSend(string host, int point)
部署在同一臺機器的不同應用,兩個應用的cookie會互相影響的問題(如果做了登入攔截,會導致已登入的應用需要重新登入)
2018年5月29日記 今天在解決專案的bug時發現的一個問題,我們有兩個系統:許可權管理系統(簡稱系統A)、前臺展示系統(簡稱系統B),發現系統A在登入的情況下,如果在開啟一個頁面登入系統B,再回到系統A訪問時會跳轉到登入頁重新登入,導致的結果系統A與系統B不能同時登
如果你想學習Java,那麼就來看這篇文章
一、前言 我是從大二開始學習的Java,當時的目標是Java Web開發,當時並不想考研,所以當時的學習是以就業為主,現在我大三了,學習Java Web開發已經一年了,因為種種原因,決定要考研,所以不得不暫時終止了Java Web的學習,部落格也可能會停更很長一段時間,雖然
如果你有一把錘子,那麼所有東西看上去都像釘子--我們是否應該冷靜
很意外自己會寫這麼一篇文章,絕對是臨時起意。算作是看最近在讀的《暗時間》一書而對於很多事情的有感而發的其中一發吧。從開始讀這本書,很多自己之前形成的系統一點的觀點就和作者相同。 關於冷靜,這次想說比較多的幾個方面。 程式設計師有很多錘子。豐富的語言、框架、設計模式、過程
ArrayList既然繼承自AbstractList抽象類,而AbstractList已經實現了List介面,那麼ArrayList類為何還要再實現List介面呢?
轉自: http://www.cnblogs.com/bluejavababy/p/4320545.html 首先請看下面這段程式碼: package example; import java.io.Serializable; import java.util.Ar
如果服務端重啟,那麼客戶端的長連線會怎麼樣
這裡記錄一次服務端重啟時,使用winshark的抓包過程; 場景是:SDK 建立對 服務端的長連線,客戶端連線策略是: 失活判斷: 一條連線 180s都沒有read到資料; 保活判斷: 每秒檢查一次,連續60次檢查都為空閒,那麼傳送一次keeplive包。 重連邏輯:
CDN百科第三講 | 如果用了雲伺服器,還需要做CDN加速嗎?
在全站上雲的背景下,雲端計算已經不僅僅是大型網際網路公司的獨享概念,正在被更多的傳統企業、中小企業甚至個人站長所採用。在眾多雲計算服務中,最常見兩個產品就是雲伺服器和CDN,今天的CDN百科第三講,就給大家介紹下你關心的問題:如果用了雲伺服器,還需不需要做CDN加速? 先上結論:雲伺服器和CDN的業務場景不同
1. 安裝Oracle,配置環境 2. 實現查詢From子句 3. 實現查詢where子句 4. 實現查詢order by子句
不可 所有 ear sql文件 是否 階段 dna cls 數學運算 一、環境安裝1. 登錄:以管理員身份登錄 sqlplus 登錄名/密碼 管理員身份登錄:sqlplus system/1234562. 登錄後,導入案例。下載scott.sql文件,執行下面一行的命令 S
eclipse中的出現在打包一次後,後面新建的項目都出錯了,出現support_v7下面出現紅線及解決方法及為什麽eclipse中項目繼承ActionBarActivity解決方法一樣
style 寫博客 引用 image back 你在 發現 想法 cti 第一次寫博客,有什麽問題或者想法的希望各位可以進行評論交流,望大家多多包涵! 遇到的問題是在新建的項目都出錯了,出現support_v7下面出現紅線及解決方法及為什麽eclipse中項目繼承Acti
SQL語句中,為什麼where子句不能使用列別名,而order by卻可以?
當select的表示式很長時,我們經常會用as子句為該表示式指定別名,然而卻發現無法在Where條件中直接使用該別名作為判斷條件. 例如下面的SQL語句: select id, (c1 + c2) as s from t1 where s > 100 執行會
ORDER BY 子句與 DISTINCT衝突
在SQL中。如果使用SELECT DISTINCT(A) FROM TABLE ORDER BY 。。。時,後面ORDER BY 後的欄位名必須在前面選擇時出現,比如 select distinct(D1) from shop order by D1 這樣才不會出現衝突,如果是select distinc
mybatis聯合查詢使用union,limit--order by不起作用
<select id="selectUnionData" resultMap="YszbResultMap" parameterType="java.util.List" > select total.* from ( select '漂流浮標