Oracle如何實現(xiàn)like多個值的查詢
問題背景描述:
某天客戶有一個需求,給定一批的手機號碼或者電話號碼,查詢出相關的通話記錄,以及相關的一些信息。
客戶給定的被叫號碼如圖所示:

查詢出來的結果如下圖所示(本批次的結果不是上圖導入的結果查詢的,為了格式說明,因此導入兩張結果不相關的圖片):

由于客戶給的被叫號碼很不規(guī)范,查詢的時候比較麻煩。
分析過程:
我新建了一個表security_phonebill_callee_num,用以存放導入的被叫號碼信息
所有的通話數(shù)據(jù)保存在t_phonebill_201702中,想要查詢必須要實現(xiàn)like,就是以下sql的實現(xiàn)效果
select org_caller_num,org_callee_num,call_seconds,start_time,switch_id, in_trunk,out_trunk,settle_carrier,file_name from t_phonebill_201702 a where a.org_callee_num like '%13800100186%'
但是這樣的號碼有好多個,有時候有一百多個,以上的sql只能查詢一個號碼的通話記錄
一開始我想用游標實現(xiàn),寫一個游標,把被叫號碼放入游標中,然后寫一個循環(huán),每次都依次查詢一下,
但后來發(fā)現(xiàn)t_phonebill_201702數(shù)據(jù)量太大,like一次就要花費時間20分鐘,100個就是2000分鐘(30個小時),耗時量太大,效率太低。
后來查閱資料,多次嘗試下寫下這個sql,總算是實現(xiàn)了查詢,實驗論證效率也還不錯。
select org_caller_num,a.org_callee_num,call_seconds,start_time,switch_id, in_trunk,out_trunk,settle_carrier,file_name from t_phonebill_201702 a where exists (select 1 from security_phonebill_callee_num c where a.org_callee_num like '%||c.org_callee_num||%') ;
如果t_phonebill_201702表的數(shù)據(jù)量不大,可以考慮使用簡版,簡版更易于了解,也能更清楚明白like多個值是如何實現(xiàn)的,但使用exists總是一個好習慣。如果你有類似的需求,希望可以幫到你。
select org_caller_num,a.org_callee_num,call_seconds,start_time,switch_id, in_trunk,out_trunk,settle_carrier,file_name from t_phonebill_201702 a,security_phonebill_callee_num c where a.org_callee_num like '%||c.org_callee_num||%'
總結
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
相關文章
Oracle啟用“_optimizer_skip_scan_enabled” 參數(shù)導致NC系統(tǒng)卡死問題解決方法
這篇文章主要介紹了Oracle啟用“_optimizer_skip_scan_enabled” 參數(shù)導致NC系統(tǒng)卡死問題解決方法,本文給大家介紹的非常詳細,感興趣的朋友跟隨小編一起看看吧2024-08-08
Oracle 數(shù)組的學習 小知識也要積累,養(yǎng)成好的學習態(tài)度
小知識也要積累,養(yǎng)成好的學習態(tài)度 Oracle的數(shù)組的學習2009-08-08
Oracle數(shù)據(jù)庫中表空間的基本管理操作小結
這篇文章主要介紹了Oracle數(shù)據(jù)庫中表空間的基本管理方法小結,包括創(chuàng)建表空間和獲取表空間大小等的操作命令,需要的朋友可以參考下2015-12-12
Oracle如何獲取當前庫中所有表空間創(chuàng)建的語句
在Oracle數(shù)據(jù)庫管理中,通過使用dbms_metadata.get_ddl函數(shù),可以方便地獲取表空間的DDL創(chuàng)建語句,首先利用select查詢構造需要的DDL語句,然后執(zhí)行得到的查詢語句即可獲取對應表空間的創(chuàng)建語句,這種方法適用于數(shù)據(jù)庫遷移或備份時重建表空間的需求2024-10-10

