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...