4
推荐
993
阅读

数据拆分需求一则

在没有connect by以及拆分函数的时候(impala等),如何实现数据拆分?数据目标思路构造出一个序列,使用cross join来关联截取with chenxu as  (select 1 id, 'a,v,s,e,sd,ss' str     from dual   union all   select 2 id, 'avs,esssd,ss' str     from dual   union all &nb...

发表了文章 • 2019-03-27 16:35 • 2 条评论

2
推荐
1713
阅读

【SQL】取上一条不为空的数据

需求获取同一月内上一条不为空的数据(按照序号排序),如下图样例数据with chenxu(adate,no_1,cnt) as ( select 201801,1,1 from dual union all select 201801,2,null from dual union all select 201801,3,null from dual union all select 201801,4,null from dual union all select 201801,5,null from dual union ...

发表了文章 • 2019-02-21 11:15 • 1 条评论

0
推荐
909
阅读

2016年ACOUG申请

申请ACOUG会员的文章

发表了文章 • 2018-07-27 14:56 • 0 条评论

0
推荐
1142
阅读

Oracle执行字符串中的公式

select dbms_aw.eval_number('1+1') from dual

发表了文章 • 2018-05-04 14:54 • 2 条评论

0
推荐
1300
阅读

Oracle自定义函数--增加月份

场景获取输入时间的下N(N>=0)个月的日期。场景一:输入6月30,则返回7月30,由于Oracle默认的add_months函数获取的是7月31(因为输入的6月30是6月最后一天,Oracle默认获取7月最后一天)场景二:输入1月31,则返回2月28(如果有29号则返回29)代码剖析输入参数要计算的日期增加的年份增加的月份返回    &...

发表了文章 • 2018-03-26 20:09 • 0 条评论

2
推荐
1165
阅读

记一则Oracle正则表达----筛选中文字符

with chenxu as(select '老头子大帅哥!handsome!イケメン!' as a from dual)select a,regexp_replace(a,'[^' || unistr('\4E00') || '-' || unistr('\9FA5') || ']','') from chenxu;Oracle中不支持/u4e00这种写法,所以只能通过unistr转换。

发表了文章 • 2017-10-11 13:09 • 0 条评论

6
推荐
1865
阅读

记一则需求,实现考勤拆分,愿大家初心常在

背景一个老同事发来的需求,需求如下:我这有个表,就比如说是出差表吧,里面有开始结束时间两个字段比如一条记录,开始时间是:2015-04-01结束时间是:2015-08-06意思就是说,这个时间段内员工在出差但是现在,有这种情况,中间某一天,比如说,2015-05-05我发现这个员工在他家里有上网记录现在我要把这天从出差这个时...

发表了文章 • 2017-05-27 21:02 • 2 条评论

3
推荐
1469
阅读

记一则Oracle业务需求---获取连续日期

需求背景获取连续的日期,比如1月31、2月1、2月2 这样连续的,跨月跨年都算作连续,如下图所示,只取标红框部分。数据搭建with ltz as (select level as aid, trunc(sysdate - level) as bdate from dual connect by level <= 120), hehe as (select aid, bdate from ltz where aid in (1,2,3,5,78,7,...

发表了文章 • 2017-04-18 00:27 • 0 条评论

5
推荐
1112
阅读

Oracle 11g Concept 中英对照版本

感谢索索提供的文档,造福社会。

发表了文章 • 2017-01-12 16:43 • 2 条评论

10
推荐
2031
阅读

merge和update到底有什么区别

背景一条update语句的优化引起风波,有人说merge比update快,有人说merge只是功能上和update有所不同,性能上应该没什么区别。简介update:更新命令merge: 指定条件下,匹配与不匹配时执行指定动作(update或insert)语法merge_update_clause ::=merge_insert_clause ::=where_clause::=From: http://docs.or...

发表了文章 • 2017-01-04 17:33 • 4 条评论

3
推荐
1341
阅读

Oracle中文符号转换成英文符号

背景解决方案select to_single_byte('老子真帅!,,,,,') from dual;拓展to_single_byte(ltz) 转换成半角http://docs.oracle.com/cd/E11882_01/server.112/e41084/functions212.htm#SQLRF06141to_multi_byte(ltz)  转换成全角http://docs.oracle.com/cd/E11882_01/server.112/e41084/functions206.htm#SQLRF061...

发表了文章 • 2016-12-09 10:30 • 5 条评论

4
推荐
1007
阅读

关于数字和字符的研究

正常来说我们用来判断一个东西是否是数字,严格的写法应该是写个函数,使用to_muber函数来转换待判断的字符串,如果报错就不是数字。今天从网上看了一段SQL,关于判断数字和字符的。REGEXP_LIKE(x , '(^[+-]?\d{0,}\.?\d{0,}$)');这段SQL里师是否正确呢?显然下面这几种都不在上面正则表达式的范围内:1/2  E  ...

发表了文章 • 2016-12-05 16:06 • 0 条评论

10
推荐
2194
阅读

oracle使用regexp_replace实现金额格式统一

背景1个月前有个社区的网友在微信群里问下面格式的金额如何统一成数字,当时并没有想出来很方便的方法,就用replace的非常笨的办法,把所有的字符用ascii穷举出来,然后替换为空我们都知道regexp_replace这个函数是replace的进阶版本,用法和replace基本一样,但是regexp_replace允许使用POSIX 正则表达式来匹配regexp_r...

发表了文章 • 2016-11-22 11:42 • 8 条评论

5
推荐
1007
阅读

解决网友业务需求案例--使用greatest/least计算满足业务规则的日期范围天数

需求如下:表中有ID,start_date,end_date三列,要统计某个月(前台传入的参数)内同一个id出现了几次,换句好理解的话就是:ID=1在11月份有多少天。他一开始的做法是想把start 和 end都展开,如:ID START_DATE END_DATE1    2016/11/1  2016/11/4转成:ID      DATE1    201...

发表了文章 • 2016-11-16 16:03 • 1 条评论

3
推荐
2369
阅读

DSI

DSI301 Advanced Server Support SkillsDSI302 Data ManagementDSI303 Database Backup and RecoveryDSI304 Query ManagementDSI305 Database TuningDSI306 Very Large DatabasesDSI307 Distribution and ReplicationDSI308 Parallel ServerDSI401 dump, crash and corruptionsDSI401 advance support skillDSI401e Adva...

发表了文章 • 2016-11-10 14:41 • 2 条评论