CONNECT BY应用

level、connect by level 实例应用 -- 生成当月所有日期表 业务需求,查询某一年某月的 AQI(空气质量指数),前端根据返回数据,生成日历。 从数据库中查询到的 AQI 监测数据缺失或者日期不连续 ,而需要返回给前端的数据格式为: [ { "day": "01", "aqi": "55" }, { "day": "02", "aqi": "142&quo 阅读详情

一. 等分时间段

    将一天得时间等分,每15分钟一条记录。


SELECT TO_CHAR(S_DT + (ROWNUM - 1) * 15 / 1440, 'hh24:mi:ss')
  FROM (SELECT TO_DATE('00:00:00', 'hh24:mi:ss') S_DT,
               TO_DATE('23:59:59', 'hh24:mi:ss') E_DT
          FROM DUAL) T
CONNECT BY S_DT + (ROWNUM - 1) * 15 / 1440 <= E_DT;

二. 遍历日期

    获取一个月中每一天的日期记录。

 SELECT TO_CHAR(SDATE + (ROWNUM - 1), 'yyyy-mm-dd') DDATE
  FROM (SELECT LAST_DAY(ADD_MONTHS(SYSDATE, -1)) + 1 SDATE,
               LAST_DAY(SYSDATE) EDATE
          FROM DUAL) T
CONNECT BY SDATE + (ROWNUM - 1) <= EDATE

   获取一年中每个月的日期记录

SELECT TO_CHAR(add_months(SDATE ,(ROWNUM - 1)), 'yyyy-mm') DDATE
   FROM (SELECT to_date(to_char(SYSDATE,'yyyy') || '-01','yyyy-mm') SDATE,
                to_date(to_char(SYSDATE,'yyyy') || '-12','yyyy-mm') EDATE
           FROM DUAL) T
 CONNECT BY add_months(SDATE ,(ROWNUM - 1)) <= EDATE;

三. 进制转换

    十六进制转十进制

    SELECT SUM(DATA)
      FROM (SELECT (CASE upper(substr('A123FD32', rownum, 1))
                     WHEN 'A' THEN '10'
                     WHEN 'B' THEN '11'
                     WHEN 'C' THEN '12'
                     WHEN 'D' THEN '13'
                     WHEN 'E' THEN '14'
                     WHEN 'F' THEN '15'
                     ELSE substr('A123FD32', rownum, 1)
                   END) * power(16, length('A123FD32') - rownum) DATA
              FROM dual
            CONNECT BY rownum <= length('A123FD32'));

 

四. 生成序列

    SELECT ROWNUM FROM DUAL CONNECT BY ROWNUM <= 25

 

五.分级查询

    部门分级查询

WITH dep AS(
SELECT 6 DEPID,'项目测试部' DEPNAME,2 UPPERDEPID FROM dual UNION ALL
SELECT 0, '总经办', null FROM dual UNION ALL
SELECT 1, '开发部', 0 FROM dual UNION ALL
SELECT 2, '测试部', 0 FROM dual UNION ALL
SELECT 3, 'Sever开发部', 1 FROM dual UNION ALL
SELECT 4, 'Client开发部', 1 FROM dual UNION ALL
SELECT 5, 'TA测试部', 2 FROM dual
)
SELECT RPAD(' ', 2 * (LEVEL - 1), '-') || DEPNAME "DEPNAME",
       CONNECT_BY_ROOT DEPNAME "ROOT",
       CONNECT_BY_ISLEAF "ISLEAF",
       LEVEL,
       SYS_CONNECT_BY_PATH(DEPNAME, '/') "PATH"
  FROM DEP
 START WITH UPPERDEPID IS NULL
CONNECT BY PRIOR DEPID = UPPERDEPID;
说明:
1. CONNECT_BY_ROOT 返回当前节点的最顶端节点
2. CONNECT_BY_ISLEAF 判断是否为叶子节点,如果这个节点下面有子节点,则不为叶子节点
3. LEVEL 伪列表示节点深度
4. SYS_CONNECT_BY_PATH函数显示详细路径,并用“/”分隔

六. 取最底层叶子节点

WITH test AS(
SELECT '2' id_xhu,'1' id_lhu FROM dual UNION ALL
SELECT '3','2' FROM dual UNION ALL
SELECT '4','3' FROM dual UNION ALL
SELECT '5','3' FROM dual)
SELECT ID_XHU
  FROM TEST T
 WHERE NOT EXISTS (SELECT 1 FROM TEST B WHERE B.ID_LHU = T.ID_XHU)
 START WITH T.ID_LHU = '1'
CONNECT BY PRIOR ID_XHU = ID_LHU

 

七.列转行

with a as (
SELECT '11,2a2,33,2,34,,2,2' A FROM dual  )
SELECT  REGEXP_SUBSTR(A, '[^,]+', 1, LEVEL) A
          FROM A
        CONNECT BY LEVEL <= LENGTH(REGEXP_REPLACE(A, '[^,]+'))+1

 

Dify 进阶指南 | 5步打造智能JSON转换器(Excel数据预处理神器) 本文详细介绍了如何利用Dify平台的Chatflow功能,通过5个步骤构建一个智能JSON转换器,专门用于Excel数据预处理。该工具能够根据用户指令自动解析Excel表格,执行数据清洗、聚合计算,并精准输出定制化的JSON格式,极大提升前端开发、数据分析与测试工作的效率。 阅读详情

相关推荐

MoveIt2 Servo实战:解锁UR机械臂在ROS2中的实时遥操作与动态响应

本文深入探讨了MoveIt2 Servo在UR机械臂实时遥操作中的应用,展示了如何通过ROS2实现毫秒级动态响应。文章详细解析了Servo的核心价值、环境配置、控制器适配及高级调优技巧,特别适用于需要高精度控制的工业场景,如VR手术训练和汽车装配线。

weixin_29044157的博客 247

如何用SQL返回两个日期之间的所有连续日期

   在层次查询中,Oracle引入了一个伪列level,用来表示当前行(节点)对应的level,它从1开始计数,每多一层level的值就加1。我们可以据此实现对两个日期/整数之间所有日期/整数的遍历。----------------------------------------------------------SQL> create table test (begin...

dong0506的博客 1073

Cadence IC618与Spectre231安装配置全攻略:License、环境变量与依赖检查

EDA工具部署中,License管理与环境变量隔离是核心难点。FlexLM作为通用授权机制,通过守护进程和端口配置实现工具授权;环境变量则控制工具路径与库加载顺序,避免版本冲突。合理配置可确保IC618与Spectre231稳定运行,提升仿真效率。典型应用场景包括模拟IC设计、高校实验室及企业级EDA环境。本文聚焦Cadence IC618与Spectre231的安装实践,详解License配置、环境隔离及依赖检查,助你快速搭建可靠设计环境。

weixin_28721917的博客 326

Oracle SQL使用connect by生成今天到指定时间的连续日期

Oracle实现方法 select sysdate + rownum+1 from dual connect by rownum <= to_date('2029-04-01','yyyy-mm-dd')-to_date(to_char(sysdate,'yyyy-mm-dd'),'yyyy-mm-dd') 结果: 实现思路:首先

Masker1133的博客 2025

FPGA新手必看:Create HDL Wrapper和Generating Output Products到底该先用哪个?

本文深入解析了FPGA设计中Create HDL Wrapper与Generating Output Products的正确使用顺序,帮助新手避免常见错误。详细介绍了两者的功能差异、执行顺序的底层逻辑以及工程管理的最佳实践,特别适合使用Vivado进行FPGA开发的初学者。

xk7n92h3p5m的博客 1065

VCS和UVM常用编译选项

VCS编译选项 -full64 在64bit模式下编译、仿真,用于64位操作系统 -j8 指定编译器可以并行编译的进程数为8 -timescale=1ns/1ps 指定仿真时间和精度 +libext+.v+.V+.sv+.svh 识别.v、.sv、.svh等多种格式文件 -sverilog 支持system verilog 编译 -f xxx.lisf 指定包含所有设计文件列表的文件名 -top test 设置顶层模块为test。(指包含.

qq_40571921的博客 9934

start with...connect by prior子句用法

 Oracle中start with...connect by prior子句用法 connect by 是结构化查询中用到的,其基本语法是: select ... from tablename start with 条件1 connect by 条件2 where 条件3;例:Start with...Connect By子句递归查询一般用于一个表维护树形结构的应用。创建示例表:CREA

adwfcu的专栏 2232

QGis二次开发 —— 5、基于qgis开发多种在线地图预览,并加入经纬度坐标显示等(附:源码)

QGis二次开发 —— 5、基于qgis开发多种在线地图预览,并加入经纬度坐标显示等(附:源码

369

oracle 数据库中 connect by 和level 的用法

这几天看sql看到了有关connect by和level的关键字用法,以前都用mysql也没用过这个关键字,感觉挺有用的,就学了下,整理一下学习过程。 首先,connect by和level都是为了快速的查询层级关系的关键字,在代理关系中,或者权限关系中,经常会有层层嵌套的场景,比如,同行数据的第一个字段是ID,第二个字段是parentID,parentID表示他的上级ID是谁。 ...

Gorden的博客 2万+

Mac 安装neo4j(解压版)最新版本教程

本文介绍了在Mac M系列操作系统上安装Neo4j图数据库的具体步骤。内容包括:从官网下载解压版Neo4j社区版压缩包;通过终端命令将其解压到/opt目录并重命名;配置环境变量以便全局访问;以及常用命令如启动/停止服务、重置密码等。安装完成后,用户可通过浏览器访问http://localhost:7474,使用默认账号neo4j/neo4j登录并根据提示重置密码。该教程简洁明了地指导用户完成Neo4j在Mac上的安装配置过程。

猿小白的博客 909

SYS_CONNECT_BY_PATH 函数综合应用 应用多字段拼在一行字符串

SELECT     f.nowdate AS "nowdate",     f.DAYOFWEEK "dayofweek",     f.WEEKOFMONTH AS "weekofmonth",     f.YEARMONTH "yearmonth",     COUNT (1) AS "messageNum",     LTRIM (         MAX (       

weixin_38466660的博客 1488

Transformer实战(30)——Transformer注意力机制可视化

在本节中,我们讨论了人工智能面临的最重要问题之一:可解释人工智能 (explainable artificial intelligence, XAI)。随着语言模型的不断发展,可解释性成为一个严峻的问题。本节中,我们从 Transformer 的角度出发,研究了 Transformer 架构中的自注意力机制,尝试通过各种可视化工具理解这些机制的内部过程。

盼小辉丶的博客 2642

oracle connect by level 应用

oracle connect by level 应用 分类: oracle 2012-09-20 16:58 754人阅读 评论(0) 收藏 举报 oracleinserttreetablesql 关键字:oracle connect by level 树状结构表  定义如下id 和 名称描述  1— 省长 2— 市长 3— 县长 4— 镇长 5— 村长 其他(6-1

YULAN1的专栏 1170

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

CONNECT BY 的应用

ORACLE向表中插入1到20,按照往常,第一反应会想到写个小程序来完成此功能。   SQL> create table tc(id int); Table created. SQL> insert into tc SELECT LEVEL AS ID FROM dual CONNECT BY LEVEL <= 20;  20 rows created. SQL> co

584

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

connect by应用

select     rownum LVL,           substr (木炭abcd1234.34ef火锅gh, rownum, 1) X      from dualconnect by rownum LVL X---------- --1 木2 炭3 a4 b5 c6 d7 18 29 310 411 .12 313 414 e15 f16 火17 锅18 g19 h 

Neo的专栏 453

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

connect by 的简单应用

一、首先从一个经典的查询序列数例子入手:       select level  from dual connect by level     select level  from dual connect by 1 = 1     上例均可查询得到1 .. N 的序列       我们来分析一下其工作原理,level     with x as

FoKing的专栏 574

sequence與connect by的應用

<br /><br /> <br />  1.users是用户表,userid是从sequence得到的唯一序号,作为主键,下面的触发器方便每次插入分配唯一的序列,其他表也可以参考于此.<br /> <br />  CREATE OR REPLACE TRIGGER users_trig<br />  before insert on users<br />  for each row<br />  declare<br />  seq_val number;<br />  begin<br />  sel

BubbleKitty的小園 596

ORACLE函数总结:connect by,with as,正则表达式应用

1、CONNECT BY:层次查询子句,一般用于树状或者层次结果集的查询 创建连续的月份 SELECT TO_CHAR(ADD_MONTHS(TO_DATE('2019' || '0830', 'yyyy-mm-dd'), -LEVEL + 1), 'YYYY-MM') mon FROM dual CONNECT BY LEVEL < 36 --...

qq_40454655的博客 518

oracle树 sys_connect_by_path的应用

SELECT max(LTRIM(SYS_CONNECT_BY_PATH(VC2AREACODE, ';'), ';')) B FROM ( SELECT t0.VC2AREACODE, rownum RN FROM (SELECT DISTINCT VC2AREACODE FROM CT_CUSELLRATEDETAIL_PREFIX WHERE NUMCUSELL...

fuqianglovejava的博客 193

Oracle函数 SYS_CONNECT_BY_PATH()函数的应用

语法: Oracle函数:sys_connect_by_path 主要用于树查询(层次查询) 以及 多列转行。其语法一般为:        select ... sys_connect_by_path(column_name,'connect_symbol')  from table         start with ... connect by ... prior   理解: 对于...

张陈亚的博客 3015

Oracle层次查询及应用(start with connect by)

  转至:http://erplife.blog.sohu.com/84644463.html 摘要:本文将根据对层次查询语句简单例子的说明来理解应用,并举例实际的应用案例。========================================================================================================start w...

Tree3170 的专栏 205

connect by的应用

1 查询一天的24小时的每一个小时 sql语句: select trunc(sysdate,'dd')+(level-1)/24 dt from dual connect by level<25 效果: 2 查询开始日期到结束日期中的每一天的日期 sql语句: ...

weixin_30498921的博客 173

ORACLE的sys_connect_by_path的应用

转自:http://blog.youkuaiyun.com/seventh1984/archive/2009/02/26/3940168.aspx 个人觉得这个函数其实很好用,sys_connect_by_path(字段名, 2个字段之间的连接符号),注意这里的连接符号不要使用逗号,oracle会报错,如果一定要用,可以使用replace替换一下,方法如下 REPLACE(字段名,原字符,,)。还

天平的专栏 4640

Oracle应用之sys_connect_by_path用法

sys_connect_by_path函数是为了配合递归查询的函数,递归查询可以参考我之前的博客:https://blog.youkuaiyun.com/u014427391/article/details/84996259,sys_connect_by_path函数是将递归查到的数据加上特定的符号,看起来更明显 connect by递归查询配合sys_connect_by_path基本语法是: select...

Nicky's blog 4666
上一篇: oracle数据文件查询修改总结
下一篇: DECODE应用
流浪川
博客等级 码龄14年 142粉丝 9原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值