RT
如:得到一个oracle数组number(12,33,44,55),怎么将其转成查询结果,如下:
ndata
12
33
44
55
如:得到一个oracle数组number(12,33,44,55),怎么将其转成查询结果,如下:
ndata
12
33
44
55
解决方案 »
- 数据库插入5000行,第二天就事务回滚了,减少了2000行,怎么回事呢?如何解决呀?
- 安装 oim的时候 报了 个错误:Following Error occured during schema creation connected加载数据库脚本时出错 谢谢大虾拉!
- oracle如何向表导入制表符格式文本?
- 高分求一sql语句,问题解决马上给分!
- 为什么将文件文件保存到数据库blob类型中时提示'数据大小超出此类型的最大值'错误(java开发)
- 字符串很急的问题!请大家帮忙!!
- 我想把BLOB保存为一个服务器端问题, 如何进行编码 ?
- 在存储过程中的SQL语句中如何使用传递的参数?
- 嵌套select与动态游标问题,在线等候,急
- 請教﹕如何讓實現我的需求(讓同一個sql中的字段分層顯示)
- 求大牛们来帮帮忙!测试after触发器的时候出错oracle触发器行级的问题!!!万分感谢
- pqsqldev进行数据移植的时候如何去掉insert语句中的ROWID属性
connect by level <= 5R
------------------------
1001
1002
1003
1004
1005
select regexp_substr(managerole, '[^,]+', 1, level) from contracttype;
managerole是一个逗号分割的字符串。
我这么写提示我缺少connect by 关键字,不知道换种写法是否可以。
select '1001,1002,1003,1004,1005' as c2 from dual
union all
select '101,102,103,104,105' from dual
)
select
substr(','||c2||',',instr(','||c2,',',1,b.rn)+1,
instr(c2||',',',',1,b.rn)-instr(','||c2,',',1,b.rn)) as c2
from t1,
(select rownum rn from t1
connect by rownum<10) b
where length(c2)-length(replace(c2,','))+1>=b.rn
order by b.rn
--结果
C2
--------------------------
101
1001
102
1002
103
1003
104
1004
105
1005
( SELECT '1001,1002,1003,1004,1005' AS c2 FROM dual
UNION ALL
SELECT '101,102,103,1041,1051' FROM dual
)
SELECT substr(',' || c2 || ',',--前后补分割符,
instr(',' || c2 || ',',',',1,b.rn) + 1,--取第rn个分割符的位置+1
instr(',' || c2 || ',',',',1,b.rn + 1) - instr(',' || c2 || ',',',',1,b.rn) - 1 --取截取的长度 = 第rn+1个位置-第rn个位置
) AS c2
FROM t1,
(SELECT rownum rn FROM t1 connect BY rownum<10
) b
where LENGTH(c2)-LENGTH(REPLACE(c2,','))+1 >= b.rn
ORDER BY b.rn
--result
C2
--------------------------
101
1001
102
1002
103
1003
1041
1004
1051
1005
number(1) , number(2) ...