Oracle/MySql/SQL Sqlserver分頁查詢

来源:http://www.cnblogs.com/gaofei-1/archive/2017/11/15/7839743.html
-Advertisement-
Play Games

簡單總結下Oracle/MySql/SQL Sqlserver這三個資料庫的分頁查詢語句 ...


簡述

    簡單概括一下Oracle,MySql,SQL Sqlserver這三個資料庫的分頁查詢語句。


 

Oracle分頁查詢

    例:每頁顯示兩條數據,現在要查詢第二頁,也就是第3-4條數據。

    查詢語句:

1 select * from (
2        select dept.*,rownum num from dept where rownum <= 4
3 ) d where d.num >= 3

 

    解釋:使用rownum列進行分頁,子查詢中設置查詢結束行,父查詢中設置查詢起始行。

    註意:子查詢中的rownum列要起一個別名。

MySQL分頁查詢

    例:每頁顯示10條數據,現在要查詢第三頁,也就是第21-30條數據。

    查詢語句:

1 SELECT * FROM `tab_sys_menu` LIMIT 20, 10

    解釋:使用limit進行分頁查詢,limit之後的第一個參數是設置查詢起始行,第二個參數是設置查詢行數(也就是每頁顯示數量)。

    註意:起始行從0開始。

SQL Server分頁查詢

    例:每頁顯示10條數據,現在要查詢第三頁,也就是第21-30條數據。

    查詢語句:

1 select top 10 * from Room where RoomId not in (
2     select top 20 RoomId from Room
3 )

    解釋:使用子查詢進行分頁,子查詢裡面的top值設置為要排除的行,比如要從第21條數據開始查詢,那麼前20條數據肯定是不要的,再比如要從第41條數據開始查詢,那麼前40條數據肯定是不要的。

          父查詢的top值設置為查詢行數(也就是每頁顯示數量)


 

擴展

    其實分頁查詢語句也不一定非得自己寫,如果項目dao層用hibernate實現的話,有兩種方式可以非常方便的實現分頁查詢。

    它們分別是Criteria查詢和HQL查詢。

    Criteria查詢:創建Criteria對象之後,有兩個方法,分別是:setMaxResults(設置每頁顯示記錄數)和setFirstResult(設置從第幾行開始查詢)。

    HQL查詢:其實和上面的一樣,根據Session創建Query之後,query對象也有setMaxResults(設置每頁顯示記錄數)和setFirstResult(設置從第幾行開始查詢)方法。

    例:session.createQuery(hql).setFirstResult((result.getPageNo()-1)*result.getPageSize()).setMaxResults(size).list();


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 在面向對象的程式設計里,一般都提供了實現隊列(queue)和堆棧(stack)的方法,而對於JS來說,我們可以實現數組的相關操作,來實現隊列和堆棧的功能,看下麵的相關介紹. 一 看一下它們的性質,這種性質決定了它們的使用場合 隊列:是一種支持先進先出(FIFO)的集合,即先被插入的數據,先被取出! ...
  • 什麼是變數:存放物體的一個容器,以便後續利用該容器存放的物體。 變數的聲明及賦值: 聲明變數關鍵字var; 變數名的規範:變數名由英文字母、數字、下劃線、美元符號組成,但是首字母只能是英文字母、下劃線、美元符號; 聲明變數使用單一var模式(多個變數只用一個var,因為每出現一個var就需要向系統請 ...
  • 閉包是javascript中一個十分常見但又很難掌握的概念,無論是自己寫代碼還是閱讀別人的代碼都會接觸到大量閉包。之前也沒有系統學習過,最近系統地總結了一些閉包的使用方法和使用場景,這裡做個記錄,希望大家指正補充。 一、定義 《JavaScript忍者秘籍》中對於閉包的定義是這樣的: 閉包是一個函數 ...
  • CSS中關於P標簽中的樣式: 1、font-family:瀏覽器在顯示字體的時候,依次判斷是否支持當前的字體,直到最後的字體系列。 font-family:"宋體","仿宋",sans-serif; 瀏覽器若不支持宋體,則用仿宋;若不支持仿宋,則在sans-serif中找。 2、font-weigh ...
  • koa模塊 koa-route 路由 route.get("路徑",路由函數) koa-static 靜態資源載入 const serve(路徑) koa-compose 中間件合成模塊 koa-body 提取表單post請求鍵值對,處理上傳文件 上下文context的response和reques ...
  • 一、概要 這份彙總整理,很程度上參考了GitHub最全前端資源彙總;雲集前端教程、開發資源、免費書籍、手冊規範、求職面試等等,旨在為前端學習 & 技能提升提供方便。當然,並不期望這成為一個前端武學收藏夾;畢竟,只有自己掌握,才是真正擁有;況且前端發展如火如荼,日新月異。這裡會儘量保持探索 & 學習 ...
  • 註:入坑內容來源於易百教程,這隻是自己學習路上的經驗總結...(附上易百教程網址:http://www.yiibai.com/mysql/) MySQL導入示例資料庫(http://www.yiibai.com/mysql/how-to-load-sample-database-into-mysql ...
  • http://blog.csdn.net/mr_green1024/article/details/53222526 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...