Oracle從字串資源中得到想要的資料分析

2022-04-09 08:43:30 字數 1323 閱讀 5902

oracle從字串資源中得到想要的資料分析

需求:訂單分析,按照遊戲,帳號級別,遊戲帳號職業,區服,**區間分析各款交易資料走勢。

目標:訂單表(order)

處理分析:訂單中可以直接讀到的標示有遊戲、區服、**。並且已經有相關配置可以關聯此類

資訊。問題分析1:帳號職業,帳號級別等交易資訊在訂單中沒有詳細的標示,只可以通過其他資訊獲取。 

處理思路1:通過訂單中的標題大概的分析職業和帳號級別。

標題格式如:

處理思路:從標題中提取出職業和帳號等級。

職業:substr

(  www.2cto.com  

o5.bizoffername,

instr(o5.bizoffername,'【',1,1)+1,

instr(o5.bizoffername,' ',1,1)-(instr(o5.bizoffername,'【',1,1)+1)

) 級別:

substr

(o5.bizoffername,

instr(o5.bizoffername,' ',1,3)+1,

instr(o5.bizoffername,'級',1,1)-(instr(o5.bizoffername,' ',1,3)+1)

) 處理結果如圖:

問題分析2:級別類似'50'這樣的是從字串中提取出來的,作為引數和帳號級別區間維度比較

時會發生無效字元。

處理思路2:果斷的想到把字元轉化為number,to_number。

問題分析3:轉化為to_number後還是會遇到無效字元。

處理思路3:還存在著其他問題,於是建立了乙個自定義函式is_number。

create or replace function is_number(parameter varchar2) return number is

val number;  www.2cto.com  

begin

val := to_number(nvl(parameter, 'a'));--引數為空則複製字元a

return 1;

exception--當遇到'40'這樣的to_number轉化正常,當遇到'40的'時to_number異常返回0,

when others then

return 0;

end;

然後看了用思路1處理出來的基礎資料,用where is_number(級別)=0,發現確實存在一些很少的

處理不規範的'你好20'類似級別欄位與number區間判斷時就報錯了,根源所在。於是只好排除了

這幾十條不規則的資料。最終得到業務的需求:

作者 小人物。

Oracle從字串資源中得到想要的資料分析

oracle 從字串資源中得到想要的資料分析 需求 訂單分析,按照遊戲,帳號級別,遊戲帳號職業,區服,區間分析各款交易資料走勢 資訊。問題分析1 帳號職業,帳號級別等交易資訊在訂單中沒有詳細的標示,只可以通過其他資訊獲 取。處理思路1 通過訂單中的標題大概的分析職業和帳號級別。標題格式如 處理思路 ...

Oracle從字串資源中得到想要的資料分析

oracle 從字串資源中得到想要的資料分析 需求 訂單分析,按照遊戲,帳號級別,遊戲帳號職業,區服,區間分析各款交易資料走勢 資訊。問題分析1 帳號職業,帳號級別等交易資訊在訂單中沒有詳細的標示,只可以通過其他資訊獲 取。處理思路1 通過訂單中的標題大概的分析職業和帳號級別。標題格式如 處理思路 ...

jQuery從字串中刪除字串

可以這麼說,這就是使用jquery從字串中刪除字串的方法。以下示例有望闡明我的意思。它使用了jquery.grep 這是乙個非常酷的搜尋功能 有點像php子字串 總之。與往常一樣,只需複製,貼上,使用firebug執行即可進行測試和試驗。function join console.log resul...