oracle 2个数组列,剔除数组重复的数据。
一、下面这样不规则的,数据如何剔除掉。循环筛选replace替换掉。
序号 正常时间 剔除时间
1 2022-12-19,2022-12-20,2022-12-21,2022-12-22,2022-12-23 2022-12-19,2022-12-23
2 2022-12-21,2022-12-22,2022-12-23,2022-12-24,2022-12-25 2022-12-23,2022-12-24,2022-12-25
二、得到的结果。
序号 剔除后的时间 剔除时间
1 2022-12-20,2022-12-21,2022-12-22 2022-12-19,2022-12-23
2 2022-12-21,2022-12-22 2022-12-23,2022-12-24,2022-12-25
三、存储函数。
create or replace function F_WORKTIME(p_StartDate varchar2,p_EndDate varchar2, List varchar2)
return worktime_Table PIPELINED
as
v WorkTime_ROW;
id number;
worktime DATE;
stopworktime DATE;
p_StopTimevarray VARCHAR2(100);
stoparrays varchar2(200);
workarraysAll VARCHAR2(100);
CURSOR cur IS select
t.c0084_id as id,
t.c0084_worktime as worktime,
t.c0084_stopworktime as stopworktimefrom t0084_apply_zy t
inner join t0080_buildproject_zy t1
on t1.c0080_pjt_id=t.c0080_pjt_id
inner join t0003_area t2
on t2.t0003_areaid=t1.c0003_stcode
inner join T0511_USERINFO t0511 on
t1.c0080_logid=t0511.c0511_logid
where (t.c0084_state=7 or t.c0084_state=12 or t.c0084_state=14)
and p_StartDate>=substr(c0084_worktime,0,10)
and p_EndDate<=substr(c0084_worktime,instr(c0084_worktime,',',-1,1)+1,10)
and t2.t0003_areaid in (select * from table(strtab(to_char(List))));
CURSOR curstop IS select regexp_substr(p_StopTimevarray,'[^,]+',1,level) as stoparrays
from dual
connect by level<=length(p_StopTimevarray)-length(replace(p_StopTimevarray,','))+1;
begin
for temp in cur loop
p_StopTimevarray:=temp.stopworktime;
workarraysAll:=temp.worktime;
for tempstop in curstop loop
if tempstop.stoparrays is not null then
workarraysAll:=replace(concat(workarraysAll,','),concat(tempstop.stoparrays,','));
end if; end loop ;
v := WorkTime_ROW(temp.id,trim(trailing ',' from workarraysAll));
PIPE ROW (v);
end loop;
RETURN;
end F_WORKTIME;
oracle 2个数组列,剔除数组重复的数据。的更多相关文章
- Asp.Net初学小结 判断数组中是否有重复的数据
Asp.Net初学小结 第一章 1.搭建Asp.net开发环境 1).net FrameWork(VS) 2)IIS(xp:5.1,2003:6.0,vista:70,win7:7.5) ...
- js从数组中取出n个不重复的数据
/** * 首先,针对这个数组做一个去重处理,避免你在后面取数据的时候,因为取到相同的元素而又要多去取一次随机数 * 将获取到的不重复的数组,再到这里样本里面去取随机数 * 每取到一次,就将这个元素从 ...
- C#实现如何判断一个数组中是否有重复的元素 返回一个数组升序排列后的位置信息--C#程序举例 求生欲很强的数据库 别跟我谈EF抵抗并发,敢问你到底会不会用EntityFramework
C#实现如何判断一个数组中是否有重复的元素 如何判断一个数组中是否有重复的元素 实现判断数组中是否包含有重复的元素方法 这里用C#代码给出实例 方法一:可以新建一个hashtable利用hasht ...
- JS数组常用函数以及查找数组中是否有重复元素的三种常用方法
阅读目录: DS01:常用的查找数组中是否有重复元素的三种方法 DS02:常用的JS函数集锦 DS01.常用的查找数组中是否有重复元素的三种方法 1. var ary = new Array(&qu ...
- JS判断数组中是否有重复元素的方法
判断数组中是否有重复元素,最容易想到的方法是使用2重循环,逐个遍历,比较,但是这个是最慢,最笨的方法,百度得出了更好的方法. var ary = new Array("111",& ...
- C语言 数组 列优先 实现
C语言数组结构列优先顺序存储的实现 (GCC编译). 从行优先转换为列优先存储方式, 与行优先相比, 不同之处在于改变了数组维界基址的先后顺序, 从而改变了映像函数常量基址. /** * @brief ...
- 从数组中随机取n条不重复的数据
工作中经常遇到有关数组的一些操作 1. 从数据中随机取n条不重复的数据 (PS:下面的S.each是KISSY.each方法,大家可以改为for循环) /* 1 从数组arr中随机取n条不重复的数据 ...
- 面试题:给定一个长度为N的数组,其中每个元素的取值范围都是1到N。判断数组中是否有重复的数字
题目:给定一个长度为N的数组,其中每个元素的取值范围都是1到N.判断数组中是否有重复的数字.(原数组不必保留) 方法1.对数组进行排序(快速,堆),然后比较相邻的元素是否相同.时间复杂度为O(nlog ...
- js实现数组去重并且显示重复的元素和索引值
var arr=["a","b","c","d","c","b","d ...
- Leetcode#442. Find All Duplicates in an nums(数组中重复的数据)
题目描述 给定一个整数数组 a,其中1 ≤ a[i] ≤ n (n为数组长度), 其中有些元素出现两次而其他元素出现一次. 找到所有出现两次的元素. 你可以不用到任何额外空间并在O(n)时间复杂度内解 ...
随机推荐
- runtime-第一篇
第一次接触runtime,先介绍下自学的几个runtime方法 1.获取类的属性列表 先导入runtime文件 #import <objc/runtime.h> 我这边创建了一个Per ...
- Java List集合排序
二维 List 自定义排序 使用lambda表达式 import java.util.*; public class Main { public static void main(String[] a ...
- day08-AOP-01
AOP 1.官方文档 AOP讲解:下载的spring文件-->spring-framework-5.3.8/docs/reference/html/core.html#aop AOP APIs: ...
- C Primer Plus(4.8)編程練習
/*C Primer Plus (4.7) 5*/ 1 include<stdio.h> 2 #define BOOK "War and Peace" 3 int ma ...
- element-ui + vue ,ant-design + vue , Angular + ZORRO 实现表格自动横纵向合并单元格,并自动根据单元格数据进行添加样式
element-ui + vue ,ant-design + vue , Angular + ZORRO 实现表格自动横纵向合并单元格,并自动根据单元格数据进行添加样式 本文重点写 element-u ...
- 反射概述-获取字节码Class对象的三种方式
反射概述 判定结果∶*红色:失败*绿色:成功*一般我们会使用断言操作来处理结果*Assert.assertEquals(期望的结果,运算的结果);补充∶*Before:*修饰的方法会在测试方法之前被自 ...
- Unity之正确设置手机显示布局&&获取手机朝向
目录 Unity之正确设置手机显示布局 && 获取手机朝向 前言 开篇 Unity版本及使用插件 正题 设置手机屏幕显示布局.Screen.orientation 获取手机当前朝向.I ...
- ThreadLocal 超强图解,这次终于懂了~
本文已收录到 AndroidFamily,技术和职场问题,请关注公众号 [彭旭锐] 提问. 前言 大家好,我是小彭. 在前面的文章里,我们聊到了散列表的开放寻址法和分离链表法,也聊到了 HashMap ...
- ASP.NET6 + Mongo + OData
准备工作 Docker环境 Mongo数据库 配置Mongo数据库 ASP.NET6 集成Mongo 安装MongoDB.Driver { "Logging": { "L ...
- SqlServer Express 自动备份数据库(没有sql代理服务的情况下)
一.由于Express版本的SQLServer没有SQL代理服务(SQLSERVERAGENT),所以就不能通过SQLServer作业来进行自动备份了,那么我们可以用Windows计划任务来定时处理 ...