oracle排列组合,sql实现排列组合

employe  表中的数据

EMPNO ENAME JOB DEPTNO SAL

101 实施一部员工1 部门领导 10 1205.775

102 实施一部员工2 普通员工 10 1341.174

103 实施一部员工3 普通员工 10 1195.74

104 实施一部员工4 普通员工 10 1529.176

105 实施一部员工5 普通员工 10 1901.084

106 实施一部员工6 普通员工 10 1240.569

107 实施一部员工7 普通员工 10 1543.701

108 实施一部员工8 普通员工 10 1940.666

109 实施一部员工9 普通员工 10 1099.344

201 实施二部员工1 部门领导 20 1168.395

202 实施二部员工2 普通员工 20 1279.73

203 实施二部员工3 普通员工 20 1629.773

204 实施二部员工4 普通员工 20 1434.098

205 实施二部员工5 普通员工 20 1200.323

206 实施二部员工6 普通员工 20 1301.527

207 实施二部员工7 普通员工 20 1845.861

208 实施二部员工8 普通员工 20 1339.908

209 实施二部员工9 普通员工 20 1319.262

301 BBBBB 部门领导 30 10059342

302 BBBBB 普通员工 30 13510598

303 BBBBB 普通员工 30 14124001

304 BBBBB 普通员工 30 10281531

305 BBBBB 普通员工 30 15048031

306 BBBBB 普通员工 30 10574133

307 BBBBB 普通员工 30 15250713

308 BBBBB 普通员工 30 13588951

309 BBBBB 普通员工 30 18616796

-----以下两条sql是按照deptno的维度得到empno的排列组合

----这条sql就不具体介绍了

with table_a1 as (select * from employe e where e.deptno=10),

table_a2 as (select * from employe e where e.deptno=20),

table_a3 as (select * from employe e where e.deptno=30)

select a1.empno,a2.empno,a3.empno from table_a1 a1,table_a2 a2 ,table_a3 a3

where a1.empno <>a2.empno and a2.empno <>a3.empno and a1.empno <>a3.empno

-----这条sql使用到了  connect by 语法

SELECT  ccc,

rtrim(regexp_substr( ccc || ',', '.*?' || ',', 1, 1), ',') AS c1,

rtrim(regexp_substr( ccc || ',', '.*?' || ',', 1, 2), ',') AS c2,

rtrim(regexp_substr( ccc || ',', '.*?' || ',', 1, 3), ',') AS c3

FROM (select level, ltrim(sys_connect_by_path(empno, ','),',') ccc

from employe where level=3 connect by prior ascii(deptno) < ascii(deptno) and level<=4)

ORDER BY 1;

Oracle “CONNECT BY”是层次查询子句,一般用于树状或者层次结果集的查询。其语法是:

[ START WITH condition ]  CONNECT BY [ NOCYCLE ] condition

说明:

1. START WITH:告诉系统以哪个节点作为根结点开始查找并构造结果集,该节点即为返回记录中的最高节点。

2. 当分层查询中存在上下层互为父子节点的情况时,会返回ORA-01436错误。此时,需要在connect by后面加上NOCYCLE关键字。同时,可用connect_by_iscycle伪列定位出存在互为父子循环的具体节点。 connect_by_iscycle必须要跟关键字NOCYCLE结合起来使用

这条sql中使用到 sys_connect_by_path 的一种灵活用法,以下说明下connect的几个函数以及level伪列 具体的就不一一举例说明了

说明:

1. CONNECT_BY_ROOT 返回当前节点的最顶端节点

2. CONNECT_BY_ISLEAF 判断是否为叶子节点,如果这个节点下面有子节点,则不为叶子节点

3. LEVEL 伪列表示节点深度

4. SYS_CONNECT_BY_PATH函数显示详细路径,并用符号分隔

我们再继续介绍两个正则表达式函数regexp_replace和regexp_substr。

regexp_replace函数和regexp_substr函数的功能类似与字符函数replace和substr,只是这里的应用更加灵活,可以一下子匹配一系列的结果,而原来的函数只能一下子匹配一个固定的字符换。

具体来讲:

regexp_replace的意义是找到于给定模式匹配的字符串并用其他的字符串来替代。

其原型是:regexp_replace(x,pattern[,replace_string[,start[,occurence[match_option]]]])

每个参数的意思分别是:

x 待匹配的函数

pattern 正则表达式元字符构成的匹配模式

replace_string 替换字符串

start 开始位置

occurence 匹配次数

match_option 匹配参数,这里的匹配参数和regexp_like是完全一样的,可参考前面的一篇文章。

举例来讲:

select regexp_replace(’hello everybody,may I have your attention please?’,'b[[:alpha:]]{3}’,'one’) from dual将会返回结果:

hello everyone,may I have your attention please?

而regexp_substr函数的意义找出与给定模式匹配的字符串并返回,

其原型是:regexp_substr(x,pattern[,start[,occurence[match_option]]])

这里各参数的意义与前面的函数regexp_replace的含义是一样做的。

regexp_substr的例子如下:

select regexp_substr(’I love oracle very much’,'o[[:alpha:]]{5}’) from dual;

这里将会匹配出结果:

oracle来。这也是这个函数的返回结果。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/512058.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【ESSD技术解读-01】 云原生时代,阿里云块存储 ESSD 快照服务如何被企业级数据保护所集成?

简介&#xff1a; 本文描述了阿里云块存储快照服务基于高性能 ESSD 云盘提升快照服务性能&#xff0c;提供轻量、实时的用户体验及揭秘背后的技术原理。依据行业发展及云上数据保护场景&#xff0c;为企业用户及备份厂商提供基于快照高级特性的数据保护的技术方案&#xff0c;满…

一把王者的时间,我就学会了Nginx

作者 | 步尔斯特来源 | CSDN博客Nginx 简介Nginx("engine x")是一个高性能的 HTTP 和反向代理服务器,特点是占有内存少&#xff0c;并发能力强&#xff0c;事实上 nginx 的并发能力确实在同类型的网页服务器中表现较好&#xff0c;中国大陆使用 nginx 网站用户有&…

【ESSD技术解读-02】企业级利器,阿里云 NVMe 盘和共享存储

简介&#xff1a; 当前 NVMe 云盘结合了业界最先进的软硬件技术&#xff0c;在云存储市场&#xff0c;首创性同时实现了 NVMe 协议 共享访问 IO Fencing 技术。它在 ESSD 之上获得了高可靠、高可用、高性能&#xff0c;同时基于 NVMe 协议实现了丰富的企业特性&#xff0c;如…

php数组json函数,php数组转json的函数是什么

php数组转json的函数是json_encode()。json_encode()函数可以对变量进行JSON编码&#xff0c;将其转换为json字符串数据&#xff0c;语法格式“json_encode (value)”。本教程操作环境&#xff1a;windows7系统、PHP7.1版&#xff0c;DELL G3电脑php数组如何转为json&#xff1…

使用友盟+的APM服务实现对移动端APP的性能监控

简介&#xff1a; 对于信息系统服务&#xff0c;一般我们的重点监控对象都是核心的后端服务&#xff0c;通常会采用一些主流的APM(Application Performance Management)框架进行监控、告警、分析。那么对于移动端的APP、小程序的运行时状态如何进行实时监控与分析呢&#xff1f…

首届“中国物联网数据基础设施最佳案例评选”结果出炉

供稿 | 映云科技 出品 | CSDN云计算 随着物联网技术的成熟与普及&#xff0c;如今的世界早已进入万物互联的时代&#xff0c;全球年活跃连接的物联网设备已达数百亿规模 &#xff08;IoT Analytics, 2021&#xff09;。海量物联设备产生的数据&#xff0c;需要通过统一汇聚和…

Serverless 工程实践 | 快速搭建 Kubeless 平台

简介&#xff1a; Kubeless 是基于 Kubernetes 的原生无服务器框架。其允许用户部署少量的代码&#xff08;函数&#xff09;&#xff0c;而无须担心底层架构。 快速搭建 Kubeless 平台 Kubeless 简介 Kubeless 是基于 Kubernetes 的原生无服务器框架。其允许用户部署少量的…

并发编程实践之公平有界阻塞队列实现

简介&#xff1a; JUC 工具包是 JAVA 并发编程的利器。本文讲述在没有 JUC 工具包帮助下&#xff0c;借助原生的 JAVA 同步原语, 如何实现一个公平有界的阻塞队列。希望你也能在文后体会到并发编程的复杂之处&#xff0c;以及 JUC 工具包的强。 作者 | 李新然 来源 | 阿里技术公…

php 什么时候传引用,什么时候在PHP中使用传递引用?

以下内容不适用于对象&#xff0c;因为这里已经说明了。如果计划修改传递的值&#xff0c;则通过引用传递数组和标量值将只会节省内存&#xff0c;因为PHP使用了更改时复制(copy-on-change)策略。例如&#xff1a;# $array will not be copied, because it is not modified.fun…

iOS App 启动优化

简介&#xff1a; 作为程序猿来说&#xff0c;“性能优化”是我们都很熟悉的词&#xff0c;也是我们需要不断努⼒以及持续进⾏的事情&#xff1b;其实优化是⼀个很⼤的课题&#xff0c;因为细分来说的话有⼤⼤⼩⼩⼗⼏种优化⽅向 &#xff0c;但是切忌在实际开发过程中不能盲⽬…

apache1.3 php编译,安装Apache1.3.29 - Linux+Apache+Mysql+PHP典型配置详解_Linux教程_Linux公社-Linux系统门户网站...

2.安装Apache1.3.29。我没有选择安装Apache2.0是我对他还是不放心&#xff0c;因为网上最新公布的apache的漏洞基本上是针对2.0&#xff0c;当然大家可以自己选择安装相应的版本。我这里讲的都是采用DSO动态编译的方法编译Apache.至于有关apache的编译方法&#xff0c;可以参考…

前后端、多语言、跨云部署,全链路追踪到底有多难?

简介&#xff1a; 完整的全链路追踪可以为业务带来三大核心价值&#xff1a;端到端问题诊断&#xff0c;系统间依赖梳理&#xff0c;自定义标记透传。 作者 | 涯海 全链路追踪的价值 链路追踪的价值在于“关联”&#xff0c;终端用户、后端应用、云端组件&#xff08;数据库…

供应商太多,怎么才能高效比价?

本篇文章暨 CSDN《中国 101 计划》系列数字化转型场景之一。 《中国 101 计划——探索企业数字化发展新生态》为 CSDN 联合《新程序员》、GitCode.net 开源代码仓共同策划推出的系列活动&#xff0c;寻访一百零一个数字化转型场景&#xff0c;聚合呈现并开通评选通道&#xff0…

7张图揭晓RocketMQ存储设计的精髓

简介&#xff1a; RocketMQ 作为一款基于磁盘存储的中间件&#xff0c;具有无限积压能力&#xff0c;并提供高吞吐、低延迟的服务能力&#xff0c;其最核心的部分必然是它优雅的存储设计。 存储概述 RocketMQ 存储的文件主要包括 Commitlog 文件、ConsumeQueue 文件、Index 文…

apache php隐藏头信息的方法,apache、php隐藏http头部版本信息的实现方法

1、apache隐藏头部版本信息&#xff0c;编辑httpd.conf文件&#xff0c;找到&#xff1a;ServerTokens OSServerSignature On修改为&#xff1a;ServerTokens ProductOnlyServerSignature Off2、上面的方法是默认情况下安装的Apache&#xff0c;如果是编译安装的&#xff0c;还…

庖丁解InnoDB之UNDO LOG

简介&#xff1a; Undo Log是InnoDB十分重要的组成部分&#xff0c;它的作用横贯InnoDB中两个最主要的部分&#xff0c;并发控制&#xff08;Concurrency Control&#xff09;和故障恢复&#xff08;Crash Recovery&#xff09;&#xff0c;InnoDB中Undo Log的实现亦日志亦数据…

Ampere Altra Max 对比测试数据公布,性能能效双领先

在云计算领域&#xff0c;发展创新的脚步永不停歇。十多年前&#xff0c;伴随着虚拟化及高速网络的发展和成熟&#xff0c;云计算应运而生。在将工作负载迁移到云端的过程中&#xff0c;为了更好地适应云环境&#xff0c;软件架构得以重建&#xff0c;就如同搬进新家时&#xf…

钉钉宜搭入选Forrester《中国低代码平台市场分析报告》

简介&#xff1a; &#x1f389; 最新&#xff1a;钉钉宜搭入选Forrester《中国低代码平台市场分析报告》&#xff01; 11月12日&#xff0c;全球知名研究机构Forrester发布《中国低代码平台市场分析报告&#xff08;The State Of Low-Code Platforms In China&#xff09;》&…

linux wheel用户组,Linux的用户和组之详解用户和组的分类

PS&#xff1a;此处的用户全是指普通用户&#xff0c;即登录用户。组和用户的关系Linux系统以组Group方式管理用户&#xff0c;用户和组的对应关系为多对多&#xff0c;即某个用户可加入/属于一个或多个组&#xff0c;某个组可以有0个、1个或多个用户。组的分类从用户的角度&am…

被自己的行为蠢哭了,意识到原因后真香!

作者 | 零一来源 | 前端印象这两天在学习 node 相关的知识时&#xff0c;做出了一些错误的行为~在做用户登录相关业务时涉及到了 cookie、session 的存取&#xff0c;一搜就找到了 express-session 这个中间件&#xff0c;真香&#xff01;配几个配置就可以自动生成 cookie、se…