A表存储的为Sr范围
ID SrFrom SrTo
1 1 3
2 4 8
3 9 11我现在想查询这些Sr: 2、10 ,结果应该是A表的第一条和第三条记录满足条件。
想查询这些Sr: 2、6、10 ,结果应该是A表的所有三条记录满足条件。
这些SQL语句怎么写啊?
是Select * from A where ??? in (2,6,10) 还是怎么写啊?急!!
ID SrFrom SrTo
1 1 3
2 4 8
3 9 11我现在想查询这些Sr: 2、10 ,结果应该是A表的第一条和第三条记录满足条件。
想查询这些Sr: 2、6、10 ,结果应该是A表的所有三条记录满足条件。
这些SQL语句怎么写啊?
是Select * from A where ??? in (2,6,10) 还是怎么写啊?急!!
解决方案 »
- 如何将一行数据分两行输出到另一个表
- oracle 11g中 在dos中 输入 :sqlplus scott/tiger 为什么出现错误?
- 数据库DBA高手快来啊,linux shell编程 从文本文件读取行和列内容 插入数据库,要怎么读取出来
- 请高手帮忙优化一个SQL语句
- 求CNOUG邀请码
- 求一条SQL查询语句,查询树中的各个节点,急,在线等
- char类型的字段作为查询条件时,必须先去掉两边的空格才行吗
- 请教两条查询语句,内详,谢谢!!!!
- oracle为什么不能实现如下语句:delete from 表A,表B where 表A.empid=表B.empid(我是本人初学,在线等)
- 不会做DB Link :)
- 高分求一SQL语句
- Sql难题,要求的是每天每拉的在厂员工数
--怎么发那么多啊?
WITH a AS(
SELECT 1 ID,1 SrFrom,3 SrTo FROM dual UNION ALL
SELECT 2, 4, 8 FROM dual UNION ALL
SELECT 3, 9, 11 FROM dual
),
tb AS(SELECT '2,6,10' id FROM dual --这里是你的'2,6,10'
),
b AS(
select substr(','||id||',',instr(','||id||',',',',1,level)+1,
instr(','||id||',',',',1,level+1)-instr(','||id||',',',',1,level)-1) sr
from tb
connect by
level <= length(','||id||',') - length(replace(','||id||',', ',', ''))-1)
SELECT a.* FROM a,b WHERE b.sr BETWEEN a.SrFrom AND a.SrTo
ID SRFROM SRTO
-------------------
1 1 3
2 4 8
3 9 11