Oracel:数据处理:根据字段中特定分隔符拆分为多个字段

本文介绍了如何利用SQL中的substr和instr函数,结合|分隔符,从test表的value字段中提取学生家庭地址、学号、姓名和年级信息。
ACE-Step

ACE-Step

音乐合成
ACE-Step

ACE-Step是由中国团队阶跃星辰(StepFun)与ACE Studio联手打造的开源音乐生成模型。 它拥有3.5B参数量,支持快速高质量生成、强可控性和易于拓展的特点。 最厉害的是,它可以生成多种语言的歌曲,包括但不限于中文、英文、日文等19种语言

场景描述

先有一张表test,表字段value中存储了学生家庭地址、学号、姓名、年级这4个信息,且用“|”分隔开。现在需要将这4个信息分别提取出来

方法

substr()函数与instr()函数结合使用

涉及函数详述

1、substr
substr('str',start,n):对字符str从位置start开始,往后截取n个字符(字符串str字母下标从1开始)
2、instr
instr('str','value'):查找该字母在字符串首次出现的位置(字符串str字母下标从1开始)
instr('str','value',start,n):指定从start位置开始查找字符value出现第n次的位置(字符串str字母下标从1开始)

代码:

--查看表数据
select * from test;
select
     --instr(value,'|',1,1)表示字符|第一次出现的位置,-1可以标记到前一个位置的字符(将这个位置作为截取字符的长度)
     substr(value,1,instr(value,'|',1,1)-1)  地址,
     --instr(value,'|',1,1)+1表示第一次出现|字符的后一个位置的字符(将这个位置作为开始查找位置)
     --instr(value,'|',1,2)表示|出现第二次的位置,instr(value,'|',1,1)-1表示第一次|出现第一次的前一个字符的位置,两者相减用以计算这之间的间隔长度(将这个作为截取字符的长度)
      substr(value,instr(value,'|',1,1)+1,instr(value,'|',1,2)-instr(value,'|',1,1)-1) 学号,
      substr(value,instr(value,'|',1,2)+1,instr(value,'|',1,3)-instr(value,'|',1,2)-1) 姓名,
      substr(value,instr(value,'|',1,3)+1,length(value)-instr(value,'|',1,3))  年级
from test;

您可能感兴趣的与本文相关的镜像

ACE-Step

ACE-Step

音乐合成
ACE-Step

ACE-Step是由中国团队阶跃星辰(StepFun)与ACE Studio联手打造的开源音乐生成模型。 它拥有3.5B参数量,支持快速高质量生成、强可控性和易于拓展的特点。 最厉害的是,它可以生成多种语言的歌曲,包括但不限于中文、英文、日文等19种语言

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值