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)时间复杂度内解 ...
随机推荐
- Codeforces Gym 104059B - Breeding Bugs
简要题意 Virtual Judge 传送门 | Codeforces Gym 传送门 给出一个长度为 \(n\) 的序列 \(a\),你需要从中选出一些数,使其两两相加不为质数.输出最大可以选择多少 ...
- Potree 003 基于Potree Desktop创建自定义工程
1.第三方js库 第三方库js库选择dojo,其官网地址为https://dojotoolkit.org/,git地址为https://github.com/dojo/dojo,demo地址为http ...
- JavaScript 中 this 关键字的作用和如何改变其上下文
一.this 关键字的作用 JavaScript 中的 this 关键字引用了所在函数正在被调用时的对象.在不同的上下文中,this 的指向会发生变化. 在全局上下文中,this 指向全局对象(在浏览 ...
- Angular在用户登录后设置授权请求头headers.append('Authorization', 'token');
方案1. 使用Angular http import {Injectable} from '@angular/core'; import {Http, Headers} from '@angular ...
- Map集合概述-Map常用子类
Map集合概述 现实生活中,我们常会看到这样的一种集合︰IP地址与主机名,身份证号与个人,系统用户名与系统用户对象等,这种--对应的关系,就叫做映射.Java提供了专门的集合类用来存放这种对象关系的对 ...
- 【开源】libserial_parse_text:命令行解析的基础库
借助五一假期,写了一个命令行解析的基础库,一般可用于串口命令解析.TCP命令解析等等. 具有以下几种特点: 不涉及到具体硬件, 纯软件协议,与具体硬件分离. 支持不定长命令行,逐个字符解码,可以支持不 ...
- JavaScript基础练习
练习:99乘法表 99乘法表 \3cbr> td { } i++) { }
- 2021级《JAVA语言程序设计》上机考试试题5
这是系统员功能实现,因为使用到了教师,所以教师的Bean与Dao,以及更新的Servlet与service Teacher package Bean; public class Teacher {pr ...
- 浏览界面servlet实现
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...
- 线段树优化DP学习笔记 & JZOJ 孤独一生题解
在 \(DP\) 的世界里 有一种题需要单调队列优化 \(DP\) 一般在此时,\(f_i\) 和它的决策集合 \(f_j\) 在转移时 \(i\) 不和 \(j\) 粘在一起(即所有的 \(j\) ...