色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

您的位置:首頁技術文章
文章詳情頁

Oracle巧取指定記錄以及巧用外關聯查詢

瀏覽:6日期:2023-11-26 08:27:20
本文中利用例子的形式來解決Oracle巧取指定記錄與巧用外關聯查詢問題。 如何取得表中第6到第10條記錄的值 第一種方法,使用minus語句: 假設ddl語句如下: CREATE TABLE T(ID VARCHAR2(4) PRIMARY KEY, VALUE INT)那么第一種方法就是取出前5條,再取出前10條,然后采用集合運算的方法把前10條減去前5條就OK了,SQL語句如下: SELECT * FROM T WHERE ROWNUM <= 10MINUSSELECT * FROM T WHERE ROWNUM <= 5;另外一種方法,采用子查詢: 子查詢的這種方法相對比較復雜一點,不過性能要比剛才的集合相減要好一些。這種方法首先在子查詢中得到前10條數據,順路也取得前10條數據的rownum,然后再一次查詢的時候取得剛才查詢的rownum大于5的那些數據。SQL語句如下: SELECT ID, VALUE FROM (SELECT ID, VALUE, ROWNUM R FROM T WHERE R <= 10)WHERER > 5;通過上面的語句,就得到了6到第10條數據了。 利用外連接替代not in語句 in語句還有not in語句的效率是非常的差的,因為數據庫在碰到這兩種語句的時候是要把數據進行一條一條的比對,假如in或者not in兩側的數據量在上萬條的時候,進行比對的次數就是上億次,很可能一個簡單的sql語句就要執行半個小時以上。這種效率客戶是肯定不能夠接受的。那我們可以考慮兩種方法進行替代,第一種就是采用exist語句和not exist語句,這種大家應該比較熟悉了。另外一種就是巧用外關聯語句,這種方法可能大家不是很熟悉,我來稍微說一下。假設數據表的建表DDL語句為 CREATE TABLE T1(ID VARCHAR2(4) PRIMARY KEY, VALUE INT)而in或者not in的表的建表DDL語句為: CREATE TABLE T2(VALUE INT)Oracle中外關聯采用的是(+)符號表示外關聯,也就是說標識了(+)符號的部分在找不到對應的值的時候為NULL。下面是替代in語句的時候的SQL語句 SELECT T1.ID, T1.VALUE FROM T1, T2 WHERE T1.VALUE = T2.VALUE(+) AND T2.VALUE IS NOT NULL;而類似的。替代not in語句的時候的SQL語句則為: SELECT T1.ID, T1.VALUE FROM T1, T2 WHERE T1.VALUE = T2.VALUE(+) AND T2.VALUE IS NULL;大家可以試驗一下,在數據量多的時候,采用外關聯比用in或者not in的執行效率要高很多很多。
標簽: Oracle 數據庫
主站蜘蛛池模板: 日本三级日产三级国产三级 | 久久国产免费一区二区三区 | 亚洲一区www| 欧美韩国日本在线 | 成人午夜免费在线观看 | 亚洲国产毛片 | 国产色a| 一级特黄特色的免费大片视频 | 中文精品久久久久国产网址 | 日本一级做人免费视频 | 一级片在线免费看 | 亚洲欧美中文日韩二区一区 | 国产成人区 | 中文字幕一区二区三区视频在线 | 国产成人精品一区二三区在线观看 | 亚洲欧美一区二区三区久本道 | 亚洲欧美日韩三级 | 国产三级麻豆 | 国产亚洲高清不卡在线观看 | 顶级毛片在线手机免费看 | 全免费毛片在线播放 | 性欧美精品久久久久久久 | 国产香蕉98碰碰久久人人 | 国产成人香蕉在线视频网站 | tubesexvideo日本护士 | 国产伦精品一区二区三区 | 欧美一级α片毛片免费观看 | 外国成人网在线观看免费视频 | 中文字幕精品一区二区精品 | 在线视频一区二区日韩国产 | 中国嫩模一级毛片 | 新久草视频 | 国产高清精品自在线看 | 欧美一级特黄一片免费 | 亚洲精品综合一区在线 | 美女毛片免费看 | 国产成人yy精品1024在线 | 久久久成人网 | 精品国产杨幂在线观看福利 | 久久欧洲视频 | 国产精品成aⅴ人片在线观看 |