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)时间复杂度内解 ...
随机推荐
- CVE-2020-1957
漏洞名称 Apache Shiro 认证绕过漏洞 CVE-2020-1957 利用条件 Apache Shiro < 1.5.1 漏洞原理 Apache Shiro 是一款开源安全框架,提供身份 ...
- python进阶之路14 之函数内置方法、可迭代对象、异常捕获处理
重要内置函数 1.map() 映射 l1 = [1, 2, 3, 4, 5] # def func(a): # return a+1 res = map(lambda x:x+1, l1) print ...
- 如何在mac电脑上配置命令行工具
Hi,欢迎大家在有空的时候做客[江涛学编程],这里是2023年的第7篇原创文章,今天我们来聊一聊如何在mac电脑上配置命令行工具 老规矩,拍拍手,上菜. 同学,打开你的mac电脑,按住键盘上的&quo ...
- [C#]关于override和new在重写方法时的区别
规则: 在"运行时"遇到虚方法时,对象会调用虚成员派生得最远的.重写的实现. 如果是用new修饰符实现的方法,它会在基类面前隐藏派生类重新声明的成员,这时候会找到使用new修饰符的 ...
- 03-Verilog语法
Verilog语法 1 Register 组合逻辑-->寄存器-->组合逻辑-->寄存器 Register是一个变量,用于存储值,并不代表一个真正的硬件DFF. reg A,C; / ...
- 通俗易懂angular搭建
- 1.MAC获取文件路径;2.MAC使用SSH连接远程服务器,实现文件上传下载
首先来说一下如何获取文件路径 ····打开terminal,把文件拖进terminal 窗口,自动显示路径. 接下来说一下使用SSH连接远程服务器,实现文件上传下载 1. 上传本地文件到服务器 sc ...
- 解决win7嵌入式系统无法DoublePulsar问题
0x01 前言 渗透过程中总是会遇到千奇百怪的问题,比如前段时间内网横向时用MS17010打台win7,EternalBlue已经提示win了,可是DoublePulsar就是死活一直报错,最后我查阅 ...
- 基于百度智能云的OCR接口进行图文识别
由于一些客户的内部系统需要提取一些记录信息,如果手工录入会变得比较麻烦,因此考虑使用百度云的OCR进行图片文字的提取处理,综合比较了一下开源免费的Tesseract 类库进行处理,不过识别效果不太理想 ...
- python开发云主机类型管理脚本
python开发云主机类型管理脚本 开发flavor_manager.py程序,来完成云主机类型管理的相关操作. 该文件拥有以下功能: 根据命令行参数,创建一个云主机类型,返回response. 查询 ...