Oracle多表联查时,某个字段由逗号分割的字符串组成,关系是此字符串切割后,对应另一张表某个字段,如何实现一条sql完成查询?
此需要类似于在sql中,使用in的场景,只是in是一对多,此处需要切割后的多对多。
这里我使用了Oracle函数进行处理,取交集
CREATE OR REPLACE
FUNCTION "FUN_JUDGE_ISCONTAIN" (ids IN NVARCHAR2, out_ids IN NVARCHAR2)
return number
AS
connum NUMBER;
BEGINIF ids is null or out_ids is null THENreturn 0;END IF;select count(*) into connum from (select regexp_substr(nme, '[^,]+', 1, rownum) nmefrom (select ids nme from dual)connect by rownum <= length(regexp_replace(nme, '[^,]+')) +1intersectselect regexp_substr(nme, '[^,]+', 1, rownum) nmefrom (select out_ids nme from dual)connect by rownum <= length(regexp_replace(nme, '[^,]+')) +1);return connum;
END;
ids和out_ids为两表对应的字段,通过取交集并判断是否返回0,获取两表的查询结果
Oracle多表联查时,某个字段由逗号分割的字符串组成,关系是此字符串切割后,对应另一张表某个字段,如何实现一条sql完成查询?相关推荐
- 一条SQL语句查询数据库中的所有表、存储过程、触发器
一条SQL语句查询数据库中的所有表.存储过程.触发器 (sysobjects表信息) 该条语句查询返回所有的用户表 select * from sysobjects where xtype='u' ...
- 面试高频,一条sql语句查询成绩,显示'优秀' ,'及格' ,'不及格'
有一张表,里面有3个字段:语文,数学,英语.其中有3条记录分别表示语文70分,数学80分,英语58分,请用一条sql语句查询出这三条记录并按以下条件显示出来: 按照要求查询后显示 话不多说 , 直接上 ...
- 案例:用一条 SQL 语句查询出每门课都大于 80 分的学生姓名
用一条sql语句查询出每门课都大于80分的学生姓名 首先需要进行分析: 要查询出每门课程都大于80分的学生姓名,因为一个学生有多门课程,所以会出现下面三种情况. 第一可能所有课程都大于80分. 第二可 ...
- 数据库:一条sql语句查询每门课程都大于80分的学生姓名
描述:已知student表有姓名-name,分数-grade,课程-course,它们多对多对多,一条sql语句查询每门课程都大于80分的学生姓名? 分析: ①每门课程,涉及到课程数量统计 SELEC ...
- select每门可说大于90分_用一条sql语句查询出“每门”课程都大于80分的学生姓名...
展开全部 首先需要进行分析: 要查询出每门课程都大于80分的学生姓名,因为一个学生有多门课程,所以会出62616964757a686964616fe78988e69d8331333366306534现 ...
- 一条SQL语句查询所有任务分数都在60以上的用户名字
一条SQL语句查询所有任务分数都在60以上的用户名字 昨天面试一家公司的笔试题,有两道SQL语句查询错误,回到家进行再想想思路,做一个记录 有两张表:数据是假设的,不是真实的 用户表(user) 任务 ...
- 用一条SQL语句查询出每门课程的成绩都大于80的学生姓名
-- 用一条SQL语句查询出每门课程的成绩都大于80的学生姓名.Student表如下: -- name course score -- 张三 语文 81 -- 张三 数学 75 -- 李四 语文 76 ...
- 用一条SQL语句查询出每门课都大于80分的学生姓名
两道sql题: 1.用一条SQL语句查询出每门课都大于80分的学生姓名. 2.删除除了自动编号不同,其他都相同的学生冗余信息. 第一题数据如下: 分析:每门课都大于80分,就是说学生最低分数要大于80 ...
- MySQL一条SQL语句查询多个科目的成绩
MySQL一条SQL语句查询多个科目的成绩 SELECT pn.name,c.`cname`,SUM(CASE WHEN ps.coid='1' THEN sname END )AS 'domain' ...
- 一条sql语句查询多个条件的写法
1.一条sql语句查询多个条件的写法 (1)sql语句的使用 SELECT p1.count1 AS todayAdd,p2.count2 AS todayReturns,p3.count3 AS s ...
最新文章
- 第十二届河南省ACM大学生程序设计竞赛赛后总结
- springside地址
- oracle修改删除数据,[Oracle 错误修改删除数据后的恢复方法
- C#数组 动态添加元素
- 如何在Win11重置系统中保留个人文件 Win11重置系统保留个人文件方法
- 正反对角线java表示_连接4对角线Win Check
- java 构造函数的执行顺序
- bzoj 4871: [Shoi2017]摧毁“树状图” [树形DP]
- 使用 Docker 一步搞定 ZooKeeper 集群的搭建
- robocopy 备份_windows7自带功能robocopy 数据迁移和备份
- 计算机怎么剪切音乐然后合在一起,电脑怎么剪辑合并音乐
- 克莱姆法则(Cramer's Rule)
- 对于面试官的问答: 你在项目组里拿到一个项目是怎么开展的呢???
- Qt QWidget 软件开发模版
- 深度学习之卷积神经网络CNN详解
- uart协议测试软件,Uart2any(windows串口调试工具)
- 【转】HDMI、DVI接口差异之解析
- 【饭谈】:开发说他要是不写bug,测试就会失业了。
- 面向小白visual studio 2019 添加第三方库教程
- 使用FileReader进行文件读取
热门文章
- Windows上安装运行 cnpm, 来代替 npm
- Codeforces914D Bash and a Tough Math Puzzle
- FPGA--(verilog)一个完整工程的设计(包含设计块和激励块)及仿真
- Robbin关于App class loader的总结(转帖)
- Linux服务器部署常用命令
- 2.react的diff算法(2020.12.07)
- LeetCode(575)——分糖果(JavaScript)
- Error:To install them, you can run: npm install --save vue-style-loader css-loader……
- 【Vue】—Vue的模板语法
- by mybatis 自定义order_springboot2结合mybatis拦截器实现主键自动生成