91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Oracle如何實現like多個值的查詢

發布時間:2020-09-14 06:54:00 來源:腳本之家 閱讀:1734 作者:鐘子敬07 欄目:數據庫

問題背景描述:

某天客戶有一個需求,給定一批的手機號碼或者電話號碼,查詢出相關的通話記錄,以及相關的一些信息。

客戶給定的被叫號碼如圖所示:

Oracle如何實現like多個值的查詢

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

Oracle如何實現like多個值的查詢

由于客戶給的被叫號碼很不規范,查詢的時候比較麻煩。

分析過程:

我新建了一個表security_phonebill_callee_num,用以存放導入的被叫號碼信息

所有的通話數據保存在t_phonebill_201702中,想要查詢必須要實現like,就是以下sql的實現效果

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只能查詢一個號碼的通話記錄

一開始我想用游標實現,寫一個游標,把被叫號碼放入游標中,然后寫一個循環,每次都依次查詢一下,

但后來發現t_phonebill_201702數據量太大,like一次就要花費時間20分鐘,100個就是2000分鐘(30個小時),耗時量太大,效率太低。

后來查閱資料,多次嘗試下寫下這個sql,總算是實現了查詢,實驗論證效率也還不錯。

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表的數據量不大,可以考慮使用簡版,簡版更易于了解,也能更清楚明白like多個值是如何實現的,但使用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||%'

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

瑞昌市| 黄浦区| 盐山县| 凤冈县| 东乌珠穆沁旗| 芦溪县| 乌鲁木齐县| 宁蒗| 会泽县| 大石桥市| 嵩明县| 广西| 和田县| 新干县| 祁阳县| 甘谷县| 库车县| 黎平县| 江川县| 夹江县| 临沂市| 昔阳县| 大宁县| 岳阳县| 南陵县| 内黄县| 霍城县| 卓尼县| 房产| 封丘县| 册亨县| 抚远县| 乐亭县| 绥棱县| 吉安县| 丘北县| 澳门| 玛纳斯县| 隆回县| 巴中市| 荥经县|