a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 數(shù)據(jù)庫 > Oracle > 正文

用Oracle的解析函數(shù)發(fā)現(xiàn)序列間隙

2024-08-29 13:50:25
字體:
供稿:網(wǎng)友
數(shù)據(jù)庫表格中經(jīng)常用到值序列。無論是作為數(shù)據(jù)本身自然產(chǎn)生的,還是由Oracle 的序列對象分配的,它的目的就是用一個(gè)唯一的、遞增的數(shù)字給每一行編號。 在編號的過程中,產(chǎn)生間隙的原因多種多樣。假如一個(gè)存儲過程從一個(gè)序列中挑選某個(gè)數(shù)字,定為本地變量,但是從來不用它,這個(gè)數(shù)字就丟失了。它將不能再返回到原序列中,結(jié)果就造成數(shù)值序列中存在一個(gè)間隙。關(guān)系型數(shù)據(jù)庫模型中不必?fù)?dān)心這一點(diǎn)。但是有時(shí)候人們在意這一點(diǎn),這些人想知道是哪些數(shù)字丟失了。 一個(gè)顯而易見的方式就是用PL/SQL:在已排序指針中循環(huán),并且用一個(gè)本地變量進(jìn)行存儲,把每一個(gè)數(shù)值與其前一行的進(jìn)行比較。這種方法的問題在于效率很低,速度很慢。另外一個(gè)不常用的解決辦法就是對表格做一個(gè)自合并,實(shí)質(zhì)也就是用某種標(biāo)準(zhǔn)使每一行與其前一行相匹配。這種方法很難編寫代碼。 Oracle的解析函數(shù)為檢查間隙提供了一種要快捷得多的方法。它們使你在使用完整的、面向集合的SQL處理的同時(shí),仍然能夠看到下一個(gè)行(LEAD)或者前一行(LAG)的數(shù)值。 下面是這些函數(shù)的格式: {LEAD LAG} (value_eXPRession, offset, default) OVER ([PARTITION BY expr] ORDER BY expr) 通常,value_expression是一個(gè)你想要檢索的數(shù)據(jù)列。參數(shù)offset是指你想要往前或往后讀取的行數(shù),default則是到達(dá)任意一個(gè)分區(qū)的開頭或者結(jié)尾(即沒有與之相匹配的行)時(shí)返回的數(shù)值。 列表A中的腳本是一系列從工作地傳感器自動收集來的數(shù)據(jù)。傳感器裝置自動給每一個(gè)測量值編上號,我們要找出結(jié)果有沒有缺失。 在列表B中,我們將數(shù)據(jù)按照測量值編號排序,運(yùn)用LAG函數(shù),把偏移量設(shè)置為1,使得每一行與其前一行對應(yīng)起來。第一行將沒有對應(yīng)量,所以相應(yīng)地,將返回默認(rèn)值0。因?yàn)殚g隙不可能發(fā)生在第一行,所以我們通過之前要求測量值大于0而將其刪除。 剩下的就是一組虛擬的行,顯示的是前一行的測量值編號(“before_gap”)和當(dāng)前行的測量值編號(“after_gap”)。假如兩者之差大于1,就說明這兩行之間存在間隙。 同時(shí)也要注重到,WITH子句在查詢開始的時(shí)候把解析子查詢命名為“aquery”。那么我們就可以在主SELECT 語句中的WHERE 子句中訪問“aquery”中的數(shù)列。


上一篇:Oracle初學(xué)者入門指南-什么是DUL?

下一篇:Oracle SQL 內(nèi)置函數(shù)的使用方法及結(jié)果

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
學(xué)習(xí)交流
熱門圖片

新聞熱點(diǎn)

疑難解答

圖片精選

網(wǎng)友關(guān)注

主站蜘蛛池模板: 亚洲视频免费在线观看 | 亚洲九九 | 人人鲁人人莫一区二区三区 | 人人插人人 | 国产xxxx精品 | 日批视频免费 | 久久视频国产 | 欧美字幕一区 | 一区二区中文字幕 | 久久综合91 | 精品亚洲永久免费精品 | 99精品视频一区二区三区 | 性色av网 | 亚洲精品一二区 | 国产无遮挡呻吟娇喘视频 | 中文字幕第一页在线 | 中文字幕亚洲区 | 天天干天天曰天天操 | 久久99精品久久久久久国产越南 | 中国大陆高清aⅴ毛片 | 欧美精品一区二区三区在线播放 | 国产三级在线观看 | 久久久91精品国产一区二区 | 91麻豆精品国产91久久久更新资源速度超快 | 国产伦精品一区二区 | 成人黄色片在线观看 | 久久久久久久99精品免费观看 | 国产精品视频福利 | 欧美一区二区三区成人 | 久久国产精品一区 | aaaa大片| 一区二区三区四区国产 | 亚洲国产精品成人 | 日韩成人精品 | 四虎影城 | 亚洲国产精品99 | 久久久精品一区二区 | 男女靠逼视频免费观看 | 天天澡天天狠天天天做 | 人人射人人插 | 国产高清视频一区二区 |