Oracle中怎样将字段字符串以逗号为界截取,并将得到的子串通过函数解释后再拼接成一个字段

作者&投稿:朱初 (若有异议请与网页底部的电邮联系)
oracle sql 实现查询时把一字符串按逗号分割,返回分割后的份数?~

上代码上图
select length('张三,李四,王五,赵六')-length(replace('张三,李四,王五,赵六',','))+1 from dual;


with temp as
(
select name as text from a
)
select substr(text,instr(text,',',1,rn)+1,instr(text,',',1,rn+1)-instr(text,',',1,rn)-1) text from
(
select ','||t1.text||',' text,t2.rn from
(select text,length(text)-length(replace(text,',',''))+1 rn from temp) t1,
(select rownum rn from all_objects where rownum <= (select max(length(text)-length(replace(text,',',''))+1) rn from temp)) t2
where t1.rn >= t2.rn order by text,rn
)

用这种方法可以处理name这一列,如果你想ID、NAME都先显示的话,就要写成一个函数来调用了。

001一定对应的是a吗?002->b,003->c?

那就用REPLACE()

select 
replace(replace(replace('001,002,003','001','a'),'002','b'),'003','c') 
from table

公司网络受限,没法传图了。。。

只能发一下了,测试的数据

select replace(replace(replace('001,002,003','001','a'),'002','b'),'003','c') from dual
REPLACE(REPLACE(REPLACE('001,002,003','001','A'),'002','B'),'003','C')
a,b,c


我猜测你是想把字段aa以逗号为界截取后放到3个变量里,然后传递到函数中,你学习一下这两个函数:substr和instr,前一个是截取字符串的,后一个是在一个字符串中找另一个字符串位置的

你还是查出值在php里面用explode 打断吧


在oracle中怎么将两个表合在一起?
1. 使用INSERT INTO SELECT语句:如果两个表具有相同的列和数据类型,并且你想将一个表的所有行插入到另一个表中,可以使用INSERT INTO SELECT语句。例如,假设有两个表table1和table2,你可以使用以下语法将table2中的所有行插入到table1中:sql INSERT INTO table1 SELECT * FROM table2;请确保tabl...

oracle中for循环后怎样将结果返回
oracle中for循环后将结果返回的方法如下:1、在FOR循环中使用OPEN、FETCH和CLOSE语句打开游标。2、获取游标中的数据、关闭游标,将数据存储到一个表中。3、最后通过SELECT语句返回表中的数据。

Oracle中如何将查询出来的数据当成一个新表用
可以用以下两种方式:1、select xx from (select xx from tablename) ;2、 WITH a AS (SELECT * FROM bd_member WHERE ROWNUM<10),b AS (SELECT * FROM tp_trade_card)select A.MEMBER_NAME,B.CARD_NO from A,B where A.BD_MEMBER_ID = B.BD_MEMBER_ID ...

在oracle中怎么将查询到的数据插入到另一个表中
1、首先,一个学生数据表,在这里需要修改数据表中StudentName数据表中的个人数据,如下图所示,然后进入下一步。2、其次,完成上述步骤后,打开数据库查询语句,输入查询语句,然后首先查询数据表中的数据内容,如下图所示,然后进入下一步。3、接着,完成上述步骤后,输入查询语句:Select * fromStude...

oracle怎么删除索引
在Oracle数据库中,删除索引是指从数据库表中删除一个或多个索引的操作。索引是用于提高数据库查询性能的重要组件,它们可以加速数据检索操作。当你删除一个索引时,Oracle数据库会将该索引从表中移除,这意味着在之后的查询操作中将不再使用该索引。删除索引可能会对数据库性能产生影响,具体取决于被删除...

oracle中怎么将int类型转换string类型
将int类型转换string类型方法如下:select CAST(A.xxx AS CHAR) as xxx,A.zzz from A wher A.yyy = '123' ;Oracle的三大类型转换:1、使用to_char(日期,‘格“常量”式')函数将日期转成字符串:例1:显示如下格式:2018年05月10日 星期四 selelct to_char(sysdate,'yyyy"年"mm"月"dd"...

oracle怎么导出clob到文本文件
在Oracle中,将CLOB(Character Large Object)数据导出到文本文件,可以通过多种方式实现,其中一种常用的方法是使用Oracle SQL Developer工具。以下是基于Oracle SQL Developer导出CLOB到文本文件的基本步骤:准备工作:确保已经安装了Oracle SQL Developer,并且成功连接到目标Oracle数据库。同时,确保执行导出...

如何在oracle中实现数据库之间的复制?
数据库表间数据复制在利用数据库开发时,常常会将一些表之间的数据互相导入。当然可以编写程序实现,但是,程序常常需要开发环境,不方便。最方便是利用sql语言直接导入。既方便而修改也简单。以下就是导入的方法。1。表结构相同的表,且在同一数据库(如,table1,table2)Sql:insertintotable1select*from...

在oracle中怎么将查询到的数据插入到另一个表中?
在oracle中将查询到的数据插入到另一个表中:1、Insert into t_tab 2、select * from s_tab where 条件 Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理...

oracle中,怎样将一个用户中的所有表和视图等全部导入另一个用户中
1.导出 可用命令exp,类似于如下 da1\/da1@ORCL file=E:\\da1.dmp log=E:\\da1.log da1为用户名,斜线后为密码,@后为数据库实例名,file后是导出文件的地址,log是导出时的日志,如果有错误,能够有据可查。2.导入 imp da2\/da2@ORCL buffer=50000000 full=n file=E:\\da1.dmp ignore=y ...

宝鸡市19687296190: Oracle中怎样将字段字符串以逗号为界截取,并将得到的子串通过函数解释后再拼接成一个字段
郭霄冠心: 我猜测你是想把字段aa以逗号为界截取后放到3个变量里,然后传递到函数中,你学习一下这两个函数:substr和instr,前一个是截取字符串的,后一个是在一个字符串中找另一个字符串位置的

宝鸡市19687296190: oracle如何将多个值放在一个字段里面 用逗号隔开 -
郭霄冠心: wmsys.wm_concat() 这个函数,是把一列的值都取出来放在一个字段里,并且是用逗号隔开的

宝鸡市19687296190: Oracle中怎样用存储过程将一段字符串以逗号为界截取,并将得到的子串存到另一张表中 -
郭霄冠心: 之前我保存的经典的方法,你可以参考下 首先创建一张表t_al_test_sy 字段分别为:pid,str_id,str_dm,str_mc;存储过程如下:create or replace procedure p_al_output as str_id varchar(60); str_dm varchar(60); str_mc varchar(800); str_start number...

宝鸡市19687296190: SQl中将一个字符串例如:'贝贝','晶晶'以逗号分解开来,并且将其赋给一个参数set @a='贝贝',set @b='晶晶'
郭霄冠心: 你用的是oracle数据库吗?字符串分割可以创建函数实现: create or replace function split(p_list varchar2,p_sep varchar2 := ',') return type_split pipelined IS l_idx pls_integer; v_list varchar2(50) := p_list; begin loop l_idx := instr(v_list,p_sep); if l_...

宝鸡市19687296190: sql查询如何将两个字段用逗号连接起来 -
郭霄冠心: 可以通过“||”拼接的方式实现.sql:select t.name||','||t.age from tablename t; 解释:oracle中用“||”来进行字符串拼接,上面的就会出现如“zhangsan,15”的样式.

宝鸡市19687296190: 在Oracle中如何判断一个字段的第一字符是否是逗号,如果是逗号就去掉逗号,请哪位大虾指教下! -
郭霄冠心: substr(字符串,开始位置,截取位数) 用上面的函数可以完成你要的判断 如果是查询 select case substr(字段,1,1)when ',' then substr(字段,2,length(字段) - 1)else 字段end as 字段名 from 表

宝鸡市19687296190: 如何截取Oracle字段中的字符 -
郭霄冠心: 您的需要就是去掉[]而获得[]之间的字符对吧 其实很简单,有一个截取字符的函数substr('string',n,m) 其中'string'是目标字符串,n为截取的起始位置,m为结束的位置.例如:select substr('[xxxx]' , 2, 4) from 表名;意思就是对[xxxx]从第二个位置开始截取4个字符.结果就是 xxxx

宝鸡市19687296190: Oracle怎么把多个字段的字段合成一个字符串 -
郭霄冠心: select FLH || '/0' || ZCH || '0' || FCH from ……

宝鸡市19687296190: oracle中,字符串截取 -
郭霄冠心: Oracle 字符串函数 substr(字符串,截取开始位置,截取长度) 1. 如果最后一个截取长度参数为空,则表示从截取开始位置起截到最末 2. 如果截取开始位置 为大于0的数字,则表示从字符串左数几位开始 3. 如果截取开始位置 为小于0的数字,则表示从字符串右数几位开始

宝鸡市19687296190: Oracle中如何截取指定区间的字符串 -
郭霄冠心: select substr(字段名,起始位置,截取长度) from table

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网