oracel
文章平均质量分 88
本分类专栏主要介绍ORACLE中的一些不常用的语法,但是由于某些逻辑需求,用如果不用才方法则无法用一个SQL或者用一个步骤完成
nil_shen
这个作者很懒,什么都没留下…
展开
-
ORACLE父子节点的查询与展示(根据父节点查子节点&根据子节点查父节点)
背景:数据形式是这样的:1.首先抛出一条母数据(即表中被创建一条初始记录),这条母数据是未关闭的,ID字段内记录它的一个ID信息,modterID字段为空。由相关人员对此数据进行初判,判断这条母记录确实是正确的,且写的很精细,则预判通过,有相关人员处理,处理完毕后则关闭这条母记录。此时该记录是没有子记录的。2.如果针对母记录,预判发现有误,则预判人员会关闭母记录,并且以母记录为根节点,再创建一条子记录(即ID字段内记录自己的ID信息,modterID就是上调母记录的ID),此时这条子记录未关闭。.原创 2020-06-15 15:26:47 · 4284 阅读 · 0 评论 -
ORACLE查询上条记录的结束时间减去当条记录的开始时间
背景:需要查询相邻两条报工记录的时间差(每条记录有报工时间的开始时间和结束时间)这条SQL感觉是很简单的,但是写起来还是费点神的,主要是因为需要用到LAG函数,没用过的话,应该不会写。SQL:select t.verweis, (begin_ts + 0) 开始时间, (end_ts + 0) 结束时间, --时间差:当前行的开始时间-前一行(LAG函数)的结束时间,根据verweis排序 (begin_ts + 0) - LAG((end_t原创 2020-06-15 14:24:48 · 1294 阅读 · 1 评论 -
ORACLE获取当天所在月份的所有日期和周几(每月类似台历显示)
背景: 做看板的时候,其中有一项内容是,需要根据在看板上显示当月的周别,即类似台历的页面,以大屏的形式显示。当时然后想了好久,突然间想到好久之前,帮忙写过一个SQL,需要显示当年的所有周别,同时需要显示周一和周日的日期,如下链接:https://blog.csdn.net/nil_shen/article/details/106760636然后我想了下,那个SQL是取周一和周日的,那我稍微调整下,就可以把周二到周六也抓出来了,不多说,上SQL:--获取当天所在月份的所有日期和周几(类似台历)sel原创 2020-06-15 14:03:49 · 1117 阅读 · 0 评论 -
ORACLE获取当年所有周别,并标注那周的周一和周日日期
背景:有块看板需求,需要统计当年看板的信息,并且是需要以周别来统计,并且显示那周的周一和周日时间。当时的思路是,按照周别统计,我只要把时间转换成周然后再Group下就OK了,结果天杀的甲爸爸非要把那周的周一~周日的日期显示出来,这不是需要我画个圈圈诅咒他108遍的节奏嘛。然后想了个办法,写个视图,视图是捞取2年内时间,按照周别显示,并且显示周一和周日,然后再group完订单表,以视图作为主表来串group的订单表,就搞定了。话不多说,上SQL:--2年内的所有周别所对应的周一和周日select t原创 2020-06-15 13:45:16 · 1519 阅读 · 0 评论 -
ORACLE的CASE WHEN以不同列作为条件查询
之前好几次做看板的时候,在使用ORACLE的case when时,一直找不到合适的例子,大多数的用法都是对查询的结果以case when 作为条件筛选,但是实际上很多条件或者串表的地方也是可以用到case when作为使用的手段的。以下就罗列以下使用的类型:一.简单CASE WHEN 的用法此方法是case when的一般用法,平常也是用的最多的,有2种语法,凭个人喜好使用:--简单Case函数selectCASE sexWHEN '1' THEN '男'WHEN '2' THEN '女'原创 2020-06-15 11:20:08 · 15160 阅读 · 0 评论