oracle sql 进行遍历查询

SELECT *

FROM (WITH temptest AS (SELECT LEVEL lv FROM DUAL connect BY LEVEL <= 10)

select lv,

cnt,

gdm,

substr(vals,

instr(t.vals, ‘,‘, 1, ts.lv) + 1,

instr(t.vals, ‘,‘, 1, ts.lv + 1) -

(instr(t.vals, ‘,‘, 1, ts.lv) + 1)) AS name

from (SELECT g.gdm,

‘,‘ || g.gdgr || ‘,‘ as vals,

(LENGTH(‘,‘ || g.gdgr) - LENGTH(REPLACE(gdgr, ‘,‘))) as cnt

FROM MYTEST.GD g) t

join temptest ts on ts.lv <= t.cnt

where gdm = ‘腾讯‘

)

原数据

主要是为了将以逗号存的数据以行的形式展现出来

思路是先获取到数据的长度,然后遍历的时候判断长度,并且,根据这个参数去截取到对应的值,不过效率的方面感觉不咋好

时间: 2024-11-15 22:56:52

oracle sql 进行遍历查询的相关文章

Oracle SQL语言之查询语句_超越OCP精通Oracle视频教程培训29

Oracle SQL语言之查询语句_超越OCP精通Oracle视频教程培训29 本课程介绍: Oracle视频教程,风哥本套oracle教程培训是<<Oracle数据库SQL语言实战培训教程>>的第4/5套:Oracle SQL语言之查询语句.主要学习Oracle数据库SQL查询限制排序.Oracle SQL联接查询.Oracle SQL子查询等. 视频学习地址: http://edu.51cto.com/course/course_id-8047.html Oracle SQL语

Oracle SQL:经典查询练手第一篇

讨论一些常见的SQL经典查询 使用Oracle的Scott用户 表结构如下: emp表 dept表 工资=薪金+佣金 工资=sal+comm 表中数据如下: emp: dept: 问题列表: 用SQL完成以下问题列表: 列出至少有一个员工的所有部门. 列出薪金比“SMITH”多的所有员工. 列出所有员工的姓名及其直接上级的姓名. 列出受雇日期早于其直接上级的所有员工. 列出部门名称和这些部门的员工信息,同时列出那些没有员工的部门 列出所有“CLERK”(办事员)的姓名及其部门名称. 列出最低薪金

oracle sql语言模糊查询

'^' 匹配输入字符串的开始位置,在方括号表达式中使用,此时它表示不接受该字符集合.'$' 匹配输入字符串的结尾位置.如果设置了 RegExp 对象的 Multiline 属性,则 $ 也匹配 '\n' 或 '\r'.'.' 匹配除换行符之外的任何单字符.'?' 匹配前面的子表达式零次或一次.'+' 匹配前面的子表达式一次或多次.'*' 匹配前面的子表达式零次或多次.'|' 指明两项之间的一个选择.例子'^([a-z]+|[0-9]+)$'表示所有小写字母或数字组合成的字符串.'( )' 标记一

Oracle SQL 经典查询练手第三篇

Oracle SQL 经典查询练手第三篇 本文分享的是Oracle SQL的经典查询第三篇,仅仅是作者自己的见解,如有问题,希望您给出建议或者方法.同时,欢迎广大读者们补充,如果您有经典的查询方式也可以拿出来我们共同分享,共同成长,共同进步. 本计算机上使用的是Oracle 11.2.0版本,使用scott用户登陆.使用的是系统自带的表. 表结构: describe employees; describe departments; describe locations; select *from

SQL Fundamentals: 子查询 || 行列转换(PIVOT,UNPIVOT,DECODE),设置数据层次(LEVEL...CONNECT BY)

SQL Fundamentals || Oracle SQL语言 子查询(基础) 1.认识子查询 2.WHERE子句中使用子查询 3.在HAVING子句中使用子查询 4.在FROM子句中使用子查询 5.在SELECT子句中使用子查询 6.WITH子句 子查询(进阶) 7.分析函数 8.行列转换 9.设置数据层次 八.行列转换 pivot和unpivot函数是Oracle 11g增加的新函数,利用此函数可以实现行列转换操作 按照原始方式实现,使用通用函数中的DECODE()函数 列字段的处理 SQ

ORACLE PATCH 版本的查询 PL/SQL

--ORACLE PATCH 版本的查询 PL/SQL SELECT DD.PATCH_NAME,        PP.CREATION_DATE,        PP.DRIVER_FILE_NAME,        LANG.LANGUAGE  FROM AD_PATCH_DRIVERS PP,        AD_APPLIED_PATCHES DD,        AD_PATCH_DRIVER_LANGS LANG WHERE PP.APPLIED_PATCH_ID = DD.APPL

查询oracle sql的执行计划时,一个很重要的视图--dba_hist_sql_plan

本文的编写得到枯荣长老的大力帮助,在此表示感谢. 本文适用的oracle db版本为oracle 10g或者更高版本. 之所以说这个视图很重要,是因为该视图中有一列是在awrsqrpt报告中没有的.这一列就是 filter_predicates列. SELECT plan_hash_value, TO_CHAR(RAWTOHEX(child_address)), TO_NUMBER(child_number), id, LPAD(' ', DEPTH) || operation operatio

oracle SQL语句练习MERGE、模糊查询、排序、

Oracle支持的SQL指令可分为数据操作语言语句.数据定义语言语句.事务控制语句.会话控制语句等几种类型:1.数据操作语言语句数据操作语言语句(Data manipulation language,DML)用于进行数据的检索和更新操作.数据检索是数据库应用中使用频率最高的操作类型,因此数据检索的效率对数据库的整体性能影响显著.数据更新包括数据的插入.修改和删除等操作,数据更新操作具有一定的风险性,在其执行过程中DBMS必须保证数据的一致性,以确保数据有效.SELECT.INSERT.DELET

【SQL Server数据迁移】64位的机器:SQL Server中查询ORACLE的数据

从SQL Server中查询ORACLE中的数据,可以在SQL Server中创建到ORACLE的链接服务器来实现的,但是根据32位 .64位的机器和软件,需要用不同的驱动程序来实现. 在64位的机器上,通过访问接口:OracleProvide for OLE DB,来实现. 1.机器环境和软件环境 操作系统是:windows 7旗舰版 64位,SQL Server 20008R2  64  位,Oracle 11g 11.2.0.1.0   64 位. 2.ORACLE环境的设置 连接orac