教你用Oracle解析函数快速检查序列间隙

2016-01-29 14:39 21 1 收藏

教你用Oracle解析函数快速检查序列间隙,教你用Oracle解析函数快速检查序列间隙

【 tulaoshi.com - Oracle教程 】

数据库表格中经常用到值序列。无论是作为数据本身自然产生的,还是由Oracle 的序列对象分配的,它的目的就是用一个唯一的、递增的数字给每一行编号。

在编号的过程中,产生间隙的原因多种多样。如果一个存储过程从一个序列中挑选某个数字,定为本地变量,但是从来不用它,这个数字就丢失了。它将不能再返回到原序列中,结果就造成数值序列中存在一个间隙。关系型数据库模型中不必担心这一点。但是有时候人们在意这一点,这些人想知道是哪些数字丢失了。

一个显而易见的方式就是用PL/SQL,在已排序指针中循环,并且用一个本地变量进行存储,把每一个数值与其前一行的进行比较。这种方法的问题在于效率很低,速度很慢。另外一个不常用的解决办法就是对表格做一个自合并,实质也就是用某种标准使每一行与其前一行相匹配。这种方法很难编写代码。

Oracle的解析函数为检查间隙提供了一种要快捷得多的方法。它们使你在使用完整的、面向集合的SQL处理的同时,仍然能够看到下一个行(LEAD)或者前一行(LAG)的数值。

下面是这些函数的格式:

{LEAD | LAG} (value_expression, offset, default) OVER ([PARTITION BY expr] ORDER BY expr)

通常,value_expression是一个你想要检索的数据列。参数offset是指你想要往前或往后读取的行数,default则是到达任意一个分区的开头或者结尾(即没有与之相匹配的行)时返回的数值。

脚本是一系列从工作地传感器自动收集来的数据。传感器装置自动给每一个测量值编上号,我们要找出结果有没有缺失。

我们将数据按照测量值编号排序,运用LAG函数,把偏移量设置为1,使得每一行与其前一行对应起来。第一行将没有对应量,所以相应地,将返回默认值0。因为间隙不可能发生在第一行,所以我们通过之前要求测量值大于0而将其删除。

剩下的就是一组虚拟的行,显示的是前一行的测量值编号(“before_gap”)和当前行的测量值编号(“after_gap”)。如果两者之差大于1,就说明这两行之间存在间隙。

同时也要注意到,WITH子句在查询开始的时候把解析子查询命名为“aquery”。那么我们就可以在主SELECT 语句中的WHERE 子句中访问“aquery”中的数列。

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com)

来源:https://www.tulaoshi.com/n/20160129/1493855.html

延伸阅读
原图 原图和最终效果 1.打开原图,图层--调整--照片滤镜。tuLaoShi.com 2.图层--调整--色彩平衡,分别从中间值.高光.暗调来调整蓝色。 3.所得的图像偏暗,我先调整一下曲线。 4.图层--调整--可选颜色,分别从红,蓝,白,中性色,黑色来调整得.数值如图所示: ...
原图 最终效果图 1、打开原图,点击图层——新调整图层——可选颜色,颜色:红色,青色+54,洋红+25,黄色+29,黑色+25。如下图: 2、再可选颜色,颜色:白色,青色-4,洋红-8,黄色+3,黑色-5。如下图: 3、再可选颜色,颜色:中性色,青色0,洋红0,黄色0,黑色+10。如下图: 完成的最终效果...
标签: 电脑入门
WPS办公软件是一款与微软Office办公软件在工具功能设置和内容展示方面都极为相似的office软件之一,不但拥有微软Office软件的优点,还可以与微软Office的格式兼容。还因为WPS是国人设计,所以很多方面非常适用于国人。今天给大家介绍一个小技巧。 有不少朋友在使用wps绘制斜线表头无从下手,那么今天就给大家详细介绍WPS绘制斜线表头的操作方...
标签: PS PS教程
  只用半小时就可有效完成常规制作要花一整天也未必做得好的皮包。  成品  下面讲一下步骤:  1.先将皮包图退底 2.根据皮包的结构把皮料分层贴上 3.用皮包的选区切除多余的皮料并合并皮料的图层 4.从皮包的通道中选取明暗对比最强的通道作蒙片,对皮料亮部提亮,反选对暗部加暗,反复减明加暗直到皮包的明暗关系...
原图 效果图 1 效果图 2 1、在PS打开素材图,修图的第一步是找到图片存在哪些问题,然后采取某手段来纠正,观察图片除了用肉眼处,我们更准确的应该借助于PS自带的工具来观察,比如直方图,信息面板等,这就是所谓数字化调整。从直方图上我们看到像素大量集中在中间调区和暗调区,高光区几乎没有,所以照片偏暗。 ...

经验教程

259

收藏

34
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部