oracle如何拆分以逗号分隔的字符串为多列oracle 中可以用connect by把字符串按都好分割:
比如定义字符串:
pv_no_list :='23,34,45,56';
SELECT DISTINCT REGEXP_SUBSTR (pv_no_list,'[^,] ',1,LEVEL) as "token"
FROMDUAL
CONNECT BY REGEXP_SUBSTR (pv_no_list,'[^,] ',1,LEVEL) IS NOT NULL
order by 1
返回结果:
TOKEN
23
34
45
56
oracle 如何将一个字段由逗号分割成多行select b,
t.ca,
c.lv,instr(t.ca, ',', 1, c.lv)1,
substr(t.ca,
instr(t.ca, ',', 1, c.lv)1,
instr(t.ca, ',', 1, c.lv1) -
(instr(t.ca, ',', 1, c.lv)1)) AS c
from (select b,
',' || c || ',' AS ca,
c,
LENGTH(C),
length(c || ','),
REPLACE(c, ','),
length(REPLACE(c, ',')), --删除逗号oracle逗号怎么分配的长度
nvl(length(REPLACE(c, ',')), 0), --空值长度为空oracle逗号怎么分配,因此要将空值替换为0
length(c || ',') - nvl(length(REPLACE(c, ',')), 0) AS cnt --以逗号分隔的字符串个数,先在原来的长度上加1 计算去除所有逗号后字符串长度,再 , 拿这个
FROM TEST_A) t,
(select LEVEL lv from dual CONNECT BY LEVEL = 100) c
where c.lv = t.cnt --逗号数量在100以内
oracle 逗号分隔查询这个用过程完成比较好,这样的话可以写几个循环 , 然后一个循环一个循环的来做,比较好解释和控制,而且写得量应该可不大 。判断下instr(字符串,n)的位置然后进行截取,以及判断是否为0等,就可以进入和跳出循环 。外层则可以是一个游标 。遍历class表 。这样就可以了 。
如果硬要写一个sql,那么这里才几个逗号 , 如果逗号很大 , 那么可能要写很多的decode或者case when , 而且不是十分好控制 。假如有最多21个逗号,那么你就要写22个decode 。这个工作量有点大了吧 。
写完后,进行行转列,找到username,然后用wm_concat,username合并或者用,最后在根据查到表的id和class的id进行对应 , 得到查询结果,可是似乎有点太麻烦了 。
我尝试用start with做 , 可是没办法实验,不知道行不行,感觉上似乎可以,但是总觉得哪里不对 。
oracle sql 实现查询时把一字符串按逗号分割 , 返回分割后的份数?上代码上图
select length('张三,李四,王五,赵六')-length(replace('张三,李四,王五,赵六',',')) 1 from dual;
oracle传过来的参数既有逗号也有单引号怎么分割你说的是把字符串按照指定的字符进行分割成几个字符吧,Oracle对字符串的处理没有那么只能 , 不想Java那样可以按指定字符分割字符串并返回子字符串的数组 。这个可以通过Oracle的正则匹配函数实现 。也只有这样了 。
oracle字段逗号分隔问题select * from tablename where regexp_like('abc,ad,a', ',[\s]*ad[\s]*,') --第一个参数是你的列
【oracle逗号怎么分配 oracle字段用逗号隔开】关于oracle逗号怎么分配和oracle字段用逗号隔开的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。
推荐阅读
- 宿迁关注公众号买口罩,关注公众号送口罩
- 平铺纹理笔刷实现js,平涂笔刷设置
- 新媒体剪辑前景如何写,新媒体后期剪辑工作内容
- 网页数据库php 网页数据库管理
- 微信视频号受限制,微信视频受限制怎么办
- 固态硬盘主板电池怎么换,固态硬盘电池在哪
- asp.netcore过滤器,c#过滤器
- java中圣诞树代码 java圣诞树代码送女友
- jshtml5canvas另存图片,js保存html文件