Oracle中使用Order By排序時結果順序不穩定的解決辦法
Oracle的分頁查詢是沒有進行任何排序操作的,Oracle是順序的從資料塊中讀取符合條件的資料返回到客戶端。
而Oracle的排序演算法不具有穩定性,也就是說,對於排序鍵值相等的資料,這種演算法完成排序後,不能保證這些鍵值相等的資料保持排序前的順序。
解決辦法就是在排序的最後一個欄位後面加上主鍵或者ROWID的排序即可解決該問題。
order by name,age,sex,ROWID;或
order by name,age,sex,ID
但是應該注意:一個查詢中使用了分組函式和排序函式,任何排序欄位不在分組函式則必須要在group by中,否則出錯。ORA-00979:不是group by表示式。
分組函式包括 :AVG\SUM\MIN\MAX\COUNT\STDDEV\VARIANCE。
相關推薦
Oracle中使用Order By排序時結果順序不穩定的解決辦法
Oracle的分頁查詢是沒有進行任何排序操作的,Oracle是順序的從資料塊中讀取符合條件的資料返回到客戶端。 而Oracle的排序演算法不具有穩定性,也就是說,對於排序鍵值相等的資料,這種演算法完成
oracle的order by排序中空字串處理方法
oracle的order by排序中空字串處理方法 2009-09-18 14:02:56| 分類: 資料庫、sql | 標籤: |字號大中小 訂閱 1、預設處理 Oracle在Or
ORDER BY 排序時 欄位有NULL值 NULL值排在後面
一般情況下人們會想到使用非空值代替NULL這時使用coalesce()函式 把控制設定為0但是當欄位為日期時,這用使用這種寫法,即以此日期升序排列,然後把NULl值放在後面ORDER BY lend.contract_submit_bank_date IS NULL ASC
Mybatis 中 order by 排序失敗的解決方法
在 mybatis 的 xml中,為一個SQL語句配置order by 子句時,需要這個排序的欄位是前端傳遞過來的,而且排序的順序(升序 OR 降序)也是由前端傳遞過來的。對於這種需求,我起初寫成了下面這樣: ORDER BY `#{condition.f
sqlserver中order by 排序用法
ORDER BY 語句用於根據指定的列對結果集進行排序,ORDER BY 語句預設按照升序對記錄進行排序,如果您希望按照降序對記錄進行排序,可以使用 DESC 關鍵字。 排序可以是升序的 (ASC),也可以是降序的 (DESC)。如果未指定是升序還是降序,就假定為 A
Oracle資料庫order by排序之null值處理方法
最近在忙活公司產品後臺的資料報表,在對業務資料排序時候,發現有些欄位的記錄是null值,這時排序便出現了有違我們使用習慣的資料大小順序問題。在Oracle中規定,在Order by排序時預設認為null是最大值,所以如果是ASC升序則被排在最後,而DESC降序則排在最前。
Oracle sql 優化:增加order by 慢 去掉之後就變快 解決辦法
一 問題背景: 1.oracle的版本的為11g 2.資料是由生產庫匯入部分資料至開發庫 3.表為範圍分割槽表 4.order by 的欄位為分割槽表的分割槽欄位 5.資料記錄大概有一千萬; 5.使用的分析工具為toad10 二 問題描述 1.加上order by的執行計劃
hexo 配置時閱讀次數不顯示解決辦法
hexo利用的是第三方不蒜子來計數的 不運算元官網 檢視 原因是不運算元 域名不存在了 找到主題路徑 下檔案 /theme/next/layout/_third-party/analytics
中文版LoadRunner11:分析結果資料不全解決辦法
使用LoadRunner11中文版執行指令碼之後點選分析結果,生成的結果如下圖: 點選圖示紅色方框內的選線發現並沒有我們想要的資料結果,如下圖: 其實出現這種問題就是因為你是中文版,英文原版是不會出現這種問題的,當然出現這種問題解決也十分簡單,步驟如
oracle中mybaties關於排序傳參order by 的問題
java中:String order=" person_name desc" 在mapper中: <if test="order ! =null"> order by #{order} </if> 讀取
解決Oracle分頁使用order by排序造成分頁順序不對的問題
今天在做專案的時候,在使用JPA對訂單進行按時間排序的時候發現查分頁資料的時候有點問題。我先一頁設定一條資料,然後發現第一頁和第二頁的資料居然一樣。下面給出我BaseDao中的JPA分頁方法: @Override public List<T> f
當SQL中ORDER BY待排序欄位值相同時,查詢結果是什麼?
簡書 Wwwwei轉載請註明原創出處,謝謝!前言 資料庫分頁是後臺經常要使用的技術手段,有時候進行資料庫查詢會根據業務需要對某一欄位排序,那麼當待排序欄位值相同時,我們得到的查詢結果會是什麼呢?問題描述 資料分頁時需要根據資料記錄建立時間create_time欄位倒序,即使用order
當SQL中ORDER BY待排序欄位值相同時,查詢結果排序
原文地址:https://blog.csdn.net/wwwwei_csdn/article/details/78181197前言 資料庫分頁是後臺經常要使用的技術手段,有時候進行資料庫查詢會根據業務需要對某一欄位排序,那麼當待排序欄位值相同時,我們得到的查詢結果會是什麼呢?問題描述 資料分
oracle order by 排序之降序 null 排最後
1 表資料person_info id name age 1 qq 23 2 ee &
解決SQL Server查詢中使用Union或Union All後Order by排序無效的bug(好神奇啊!!)
http://www.ourcodelife.com/article-415-1.html 首先,在程式人生網站上,需要負責任的指出的是在SQL Server查詢中使用Union或Union All後Order by排序無效,我不確認是不是微軟的bug,不過這裡卻是我實際程式設計工作的經驗,但願大家看到
mysql中order by 指定排序
原 mysql中order by 可以指定排序 2017年05月19日 17:01:26 qq_36340642 閱讀數:27528 這裡
檢視中幹嘛不能用Order by排序
這個問題不高深,甚至有那麼一點多此一舉.既然都用到檢視了,幹嘛還要在檢視中用排序呢?檢視就存了sql語句了,那我們在使用檢視的時候只在檢視後面指定ORDERY BY不就行了. 先來看看語句: SELECT * FROM TESTS ORDER BY AddTime D
oracle-union order by rownum排序與取數
order by在union的排序可以寫在後一個select裡 SELECT 5 Id,2 Name From dual UNION ALL Select 3,4 From dual Order
mysql中order by 可以指定排序
mysql表的排序 ORDER BY field1 [ASC [DESC]], [field2…] [ASC [DESC]],… 這裡是想讓它以 num 排序 但是 num=-1的那條資料單獨為最大值 法一:field( field1,val1,val2,…
【oracle】中文的order by排序規則
總結: 單純使用order by排序中文,是根據ascii碼排序的,不是根據拼音排序的。 如果要根據拼音排序某一列,需要用函式nlssort(列名,’NLS_SORT=SCHINESE_PINYIN