亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

目錄
oracle怎樣查詢前10條記錄
首頁(yè) 數(shù)據(jù)庫(kù) Oracle oracle怎樣查詢前10條記錄

oracle怎樣查詢前10條記錄

Jan 25, 2022 am 10:37 AM
oracle

在oracle中,可以利用where子句配合rownum來(lái)查詢前十條記錄,where子句用于限制查詢的條件,rownum用于限制返回查詢的總行數(shù),語(yǔ)法為“select * from 表名 where rownum <=10”。

oracle怎樣查詢前10條記錄

本教程操作環(huán)境:Windows10系統(tǒng)、Oracle 11g版、Dell G3電腦。

oracle怎樣查詢前10條記錄

在Oracle怎樣查詢表中的top10條記錄呢?

  select *
  from test
  where rownum <=10

  下面是關(guān)于rownum的介紹

  Rownum和row_number() over()的使用

  ROWNUM是Oracle從8開(kāi)始提供的一個(gè)偽列,是把SQL出來(lái)的結(jié)果進(jìn)行編號(hào),始終從1開(kāi)始,常見(jiàn)的用途就是用來(lái)分頁(yè)輸出.

  比如

  SELECT *
  FROM torderdetail a
  WHERE ROWNUM <= 10

  這條語(yǔ)句就是輸出前10條紀(jì)錄,在這里用途上類似于sql sever的top,不過(guò)rownum對(duì)于指定編號(hào)區(qū)間的輸出應(yīng)該說(shuō)更強(qiáng)大

  SELECT *
  FROM (SELECT a.*, ROWNUM rn
  FROM torderdetail a)
  WHERE rn >= 10 AND rn <= 20

  這條語(yǔ)句即是輸出第10到第20條紀(jì)錄,這里之所以用rownum rn,是把rownum轉(zhuǎn)成實(shí)例,因?yàn)閞ownum本身只能用 <=的比較方式,只有轉(zhuǎn)成實(shí)列,這樣就可做 >=的比較了。

  在實(shí)際用途中,常常會(huì)要求取最近的幾條紀(jì)錄,這就需要先對(duì)紀(jì)錄進(jìn)行排序后再取rownum <=

  一般常見(jiàn)的

  SELECT *
  FROM (SELECT a.*
  FROM torderdetail a
  ORDER BY order_date DESC)
  WHERE ROWNUM <= 10

  而在CSDN曾經(jīng)發(fā)生過(guò)討論,關(guān)于取近的10條紀(jì)錄,有人給出這樣的語(yǔ)句

  SELECT a.*
  FROM torderdetail a
  WHERE ROWNUM <= 10
  ORDER BY order_date DESC

  之所以會(huì)出現(xiàn)這樣的語(yǔ)句,主要是從效率上的考慮,前面條語(yǔ)句,是要進(jìn)行全表掃描后再排序,然后再取10條紀(jì)錄,后一條語(yǔ)句則不會(huì)全表掃描,只會(huì)取出10條紀(jì)錄,很明顯后條語(yǔ)句的效率會(huì)高許多。

  那為什么會(huì)有爭(zhēng)議呢,那就在于在執(zhí)行順序上爭(zhēng)議,是先執(zhí)行排序取10條紀(jì)錄,還是取10條紀(jì)錄,再排序呢??jī)煞N順序取出來(lái)的結(jié)果是截然相反的,先排序再取10條,就是取最近的10條,而先取10條,再排序,則取出的最早的10條紀(jì)錄。對(duì)于此語(yǔ)句,普遍的認(rèn)為執(zhí)行順序是先取10條紀(jì)錄再排序的。所以此語(yǔ)句應(yīng)該是錯(cuò)誤。但實(shí)際上并非如此,此語(yǔ)句的執(zhí)行順序和order by的字段有關(guān)系,如果你order by 的字段是pk,則是先排序,再取10條(速度比第一種語(yǔ)句快),而排序字段不是PK 時(shí),是先取10條再排序,此時(shí)結(jié)果就與要求不一樣了,所以第二種寫(xiě)法一定要在排序字段是主鍵的情況下才能保證結(jié)果正確。

  Row_number() over()這個(gè)分析函數(shù)是從9I開(kāi)始提供的,一般的用途和rownum差不多。

  一般寫(xiě)法row_number() over( order by order_date desc) 生成的順序和rownum的語(yǔ)句一樣,效率也一樣(對(duì)于同樣有order by 的rownum語(yǔ)句來(lái)說(shuō)),所以在這種情況下兩種用法是一樣的。

  而對(duì)于分組后取最近的10條紀(jì)錄,則是rownum無(wú)法實(shí)現(xiàn)的,這時(shí)只有row_number可以實(shí)現(xiàn),row_number() over(partition by 分組字段 order by 排序字段)就能實(shí)現(xiàn)分組后編號(hào),比如說(shuō)要取近一個(gè)月的每天最后10個(gè)訂單紀(jì)錄

  SELECT *
  FROM (SELECT a.*,
  ROW_NUMBER () OVER (PARTITION BY TRUNC (order_date) ORDER BY order_date DESC)
  rn
  FROM torderdetail a)
  WHERE rn <= 10

  Rownum的另類用法,有時(shí)候我們會(huì)遇到這種需求,要求輸出當(dāng)月的所有天數(shù),許多人會(huì)煩惱,數(shù)據(jù)庫(kù)里又沒(méi)有這樣的表,怎么輸出一個(gè)月的所有天數(shù)呢?用rownum就能解決:

  SELECT TRUNC (SYSDATE, &#39;MM&#39;) + ROWNUM - 1
  FROM DUAL
  CONNECT BY ROWNUM <= TO_NUMBER (TO_CHAR (LAST_DAY (SYSDATE), &#39;dd&#39;))

推薦教程:《Oracle視頻教程

以上是oracle怎樣查詢前10條記錄的詳細(xì)內(nèi)容。更多信息請(qǐng)關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

本站聲明
本文內(nèi)容由網(wǎng)友自發(fā)貢獻(xiàn),版權(quán)歸原作者所有,本站不承擔(dān)相應(yīng)法律責(zé)任。如您發(fā)現(xiàn)有涉嫌抄襲侵權(quán)的內(nèi)容,請(qǐng)聯(lián)系admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣服圖片

Undresser.AI Undress

Undresser.AI Undress

人工智能驅(qū)動(dòng)的應(yīng)用程序,用于創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用于從照片中去除衣服的在線人工智能工具。

Clothoff.io

Clothoff.io

AI脫衣機(jī)

Video Face Swap

Video Face Swap

使用我們完全免費(fèi)的人工智能換臉工具輕松在任何視頻中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的代碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

功能強(qiáng)大的PHP集成開(kāi)發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺(jué)化網(wǎng)頁(yè)開(kāi)發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級(jí)代碼編輯軟件(SublimeText3)

熱門(mén)話題

Laravel 教程
1597
29
PHP教程
1488
72
怎樣卸載MySQL并清理殘留文件 怎樣卸載MySQL并清理殘留文件 Apr 29, 2025 pm 04:03 PM

要安全、徹底地卸載MySQL并清理所有殘留文件,需遵循以下步驟:1.停止MySQL服務(wù);2.卸載MySQL軟件包;3.清理配置文件和數(shù)據(jù)目錄;4.驗(yàn)證卸載是否徹底。

甲骨文在商業(yè)世界中的作用 甲骨文在商業(yè)世界中的作用 Apr 23, 2025 am 12:01 AM

Oracle不僅是數(shù)據(jù)庫(kù)公司,還是云計(jì)算和ERP系統(tǒng)的領(lǐng)導(dǎo)者。1.Oracle提供從數(shù)據(jù)庫(kù)到云服務(wù)和ERP系統(tǒng)的全面解決方案。2.OracleCloud挑戰(zhàn)AWS和Azure,提供IaaS、PaaS和SaaS服務(wù)。3.Oracle的ERP系統(tǒng)如E-BusinessSuite和FusionApplications幫助企業(yè)優(yōu)化運(yùn)營(yíng)。

MongoDB vs. Oracle:為您的需求選擇正確的數(shù)據(jù)庫(kù) MongoDB vs. Oracle:為您的需求選擇正確的數(shù)據(jù)庫(kù) Apr 22, 2025 am 12:10 AM

MongoDB適合非結(jié)構(gòu)化數(shù)據(jù)和高擴(kuò)展性需求,Oracle適合需要嚴(yán)格數(shù)據(jù)一致性的場(chǎng)景。1.MongoDB靈活存儲(chǔ)不同結(jié)構(gòu)數(shù)據(jù),適合社交媒體和物聯(lián)網(wǎng)。2.Oracle結(jié)構(gòu)化數(shù)據(jù)模型確保數(shù)據(jù)完整性,適用于金融交易。3.MongoDB通過(guò)分片橫向擴(kuò)展,Oracle通過(guò)RAC縱向擴(kuò)展。4.MongoDB維護(hù)成本低,Oracle維護(hù)成本高但支持完善。

yi框架用什么軟件比較好 yi框架使用軟件推薦 yi框架用什么軟件比較好 yi框架使用軟件推薦 Apr 18, 2025 pm 11:03 PM

文章首段摘要:在選擇開(kāi)發(fā) Yi 框架應(yīng)用程序的軟件時(shí),需要考慮多個(gè)因素。雖然原生移動(dòng)應(yīng)用程序開(kāi)發(fā)工具(如 XCode 和 Android Studio)可以提供強(qiáng)大的控制和靈活性,但跨平臺(tái)框架(如 React Native 和 Flutter)憑借其編寫(xiě)一次,即可部署到多個(gè)平臺(tái)的優(yōu)點(diǎn)而越來(lái)越受歡迎。對(duì)于剛接觸移動(dòng)開(kāi)發(fā)的開(kāi)發(fā)者,低代碼或無(wú)代碼平臺(tái)(如 AppSheet 和 Glide)可以快速輕松地構(gòu)建應(yīng)用程序。另外,云服務(wù)提供商(如 AWS Amplify 和 Firebase)提供了全面的工具

MySQL與Oracle:許可,功能和福利 MySQL與Oracle:許可,功能和福利 May 08, 2025 am 12:05 AM

MySQL和Oracle的主要區(qū)別在于許可證、功能和優(yōu)勢(shì)。1.許可證:MySQL提供GPL許可證,免費(fèi)使用,Oracle采用專有許可證,價(jià)格昂貴。2.功能:MySQL功能簡(jiǎn)單,適合Web應(yīng)用和中小型企業(yè),Oracle功能強(qiáng)大,適合大規(guī)模數(shù)據(jù)和復(fù)雜業(yè)務(wù)。3.優(yōu)勢(shì):MySQL開(kāi)源免費(fèi),適合初創(chuàng)公司,Oracle性能可靠,適合大型企業(yè)。

MySQL和Oracle:探索性能和可伸縮性 MySQL和Oracle:探索性能和可伸縮性 Apr 29, 2025 am 12:12 AM

MySQL和Oracle在性能和可擴(kuò)展性上的區(qū)別在于:1.MySQL在小型到中型數(shù)據(jù)集上表現(xiàn)更好,適合快速擴(kuò)展和高效讀寫(xiě);2.Oracle在處理大型數(shù)據(jù)集和復(fù)雜查詢時(shí)更具優(yōu)勢(shì),適合高可用性和復(fù)雜業(yè)務(wù)邏輯。MySQL通過(guò)主從復(fù)制和分片技術(shù)實(shí)現(xiàn)擴(kuò)展,而Oracle通過(guò)RAC實(shí)現(xiàn)高可用性和擴(kuò)展性。

MySQL與Oracle:了解許可和成本 MySQL與Oracle:了解許可和成本 May 03, 2025 am 12:19 AM

MySQL采用GPL和商業(yè)許可,適合小型和開(kāi)源項(xiàng)目;Oracle采用商業(yè)許可,適合需要高性能的企業(yè)。MySQL的GPL許可免費(fèi),商業(yè)許可需付費(fèi);Oracle許可費(fèi)用按處理器或用戶計(jì)算,成本較高。

怎么學(xué)java不走彎路 高效學(xué)習(xí)Java的方法和技巧分享 怎么學(xué)java不走彎路 高效學(xué)習(xí)Java的方法和技巧分享 May 20, 2025 pm 08:24 PM

學(xué)習(xí)Java不走彎路的關(guān)鍵是:1.理解核心概念和語(yǔ)法;2.多實(shí)踐;3.理解內(nèi)存管理和垃圾回收;4.加入在線社區(qū);5.閱讀別人的代碼;6.了解常見(jiàn)庫(kù)和框架;7.學(xué)習(xí)處理常見(jiàn)錯(cuò)誤;8.制定學(xué)習(xí)計(jì)劃并循序漸進(jìn)。這些方法能幫助你高效掌握J(rèn)ava編程。

See all articles