Oracle从字符串资源中得到想要的数据分析
[oracle]从字符串资源中得到想要的数据分析
需求:订单分析,按照游戏,帐号级别,游戏帐号职业,区服,价格区间分析各款交易数据走势
。
目标:订单表(order)
处理分析:订单中可以直接读到的标示有游戏、区服、价格。并且已经有相关配置可以关联此类
信息。
问题分析1:帐号职业,帐号级别等交易信息在订单中没有详细的标示,只可以通过其他信息获
取。
处理思路1:通过订单中的标题大概的分析职业和帐号级别。
标题格式如:

处理思路:从标题中提取出职业和帐号等级。
职业:
substr
(
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;
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从字符串资源中得到想要的数据分析的更多相关文章
- DBA避坑宝典:Oracle运维中的那些事儿
对于Oracle运维中的那些事儿,我的最终目的:不是比谁更惨,而是能够从中吸取经验和教训. 从我的理解来看,我会从下面的几个方面来进行说明DBA运维中的一些事儿. 每个部分都是非常关键的,缺一不可,而 ...
- Oracle采购模块中的多组织访问控制(MOAC)
1. 概述 从Release12开始启用多组织访问控制功能,将允许用户在一个单独的职责中访问一个或者多个经营单位(OU-Operation Units)的数据.这个功能允许用户在一个可共享服务的 ...
- Oracle数据库脚本中的set define off
2018年8月6日15:11:34 Oracle数据库脚本中的set define off 前言 最近在公司写需求,接触到脚本,第一句set define off;就不知道什么意思了,查询后记录之. ...
- Oracle sql语句中不支持boolean类型(decode&case)
[转自] http://blog.csdn.net/t0nsha/article/details/7828538 Oracle sql语句中不支持boolean类型(decode&case) ...
- Oracle在plsql中修改数据
Oracle在plsql中想要修改数据,有两种方式: a.使用rowid+点击锁图标,语句为: select t.*,rowid from T_BIC_PLY_MAIN t; b.使用for up ...
- ORACLE PL/SQL 中序列(sequence)的简易使用方法介绍
如果我是C罗 原文 ORACLE PL/SQL 中序列(sequence)的简易使用方法介绍 sequence在ORACLE中应用十分广泛,就是序列号的意思,会自动增加指定变数,如逐次增加1或者2或者 ...
- Oracle 实现表中id字段自增长
Oracle 实现表中id字段自增长 最近正在学习Oracle的时候发现Oracle表中的字段不能像mysql中那样可以用auto increment修饰字段从而让id这种主键字段实现自增长. 那Or ...
- 在Azure上的VM镜像库中找到想要的镜像
Azure上的虚机镜像库中, 有很多的镜像,其中当然也包括了用户自定义上传的镜像. 在Powershell中如果想使用这些镜像的话, 则需要知道其名称 下面这条命令,可以获得所有的镜像信息 $imag ...
- Oracle系列——开发中奇葩问题你遇到几个(一)
前言:在使用oracle数据进行开发的时候有没有经常出现一些很奇怪.很纳闷.很无厘头的问题呢.下面是本人使用oracle一段时间遇到的问题小节,在此做个记录,方便以后再遇到类似的问题能快速解决.如果你 ...
随机推荐
- php教程之Smarty模板用法实例
分享下php之Smarty模板的使用方法. 剖析了smarty模板的使用方法,对于学习smarty的朋友有一定的参考价值. 详情如下: 一.模板中的注释每一个Smarty模板文件,都是通过Web前台语 ...
- 学习笔记之gethostbyname函数
我们现在认知一台计算机主机通常采用直观可读的名字.例如博客园我们会记住 www.cnblogs.com 而不是记住42.121.252.58这个IP.对于大多数的应用程序来说应该是处理名字而不是处理地 ...
- windows 7 IIS 7.0 装好后,HTTP Error 503. The service is unavailable.
IIS 7.0 装好后,出现 以上问题. 解决办法,如下图,设置应用程序池 ,
- mac下framework联编需要设置的
点击target,然后,在Build Phases里的空白处用鼠标点一下(艹 变态) 这时,点最上面菜单:Editor/Add Build Phases/Add Copy Files Build Ph ...
- win32串口编程
翻译自:ms-help://MS.MSDNQTR.v80.chs/MS.MSDN.v80/MS.WIN32COM.v10.en/dnfiles/html/msdn_serial.htm 老外写的文章, ...
- java 多线程11:volatile关键字
直接先举一个例子普通的线程实例变量的非可见性: public class MyThread28 extends Thread { private boolean isRunning = true; p ...
- excel保存时出现“请注意,您的文档的部分内容可能包含了文档检查器无法删除的个人信息”
这个问题的原因是由于工作簿包含宏.ActiveX控件等内容, 而Excel被设置为在保存文件时自动删除文件属性中的个人信息,因而出现该对话框.如果要避免出现这个提示,可进行如下设置: Excel 20 ...
- sql插入数据
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
- HTML——动画效果:图片循环横向播放
一.html <!DOCTYPE HTML> <html> <head> <title>Home</title> <link href ...
- oops_根据epc定位linux_kernel_panic位置
韩大卫@吉林师范大学 2014.12.10 转载请表明出处 ***************************************************** 关于内核报错 “Unable t ...