问题描述
我在下面存储的列中有一些文本。带有时间/日期戳,工人姓名,职位和团队很长。
“在HH: DD/MM/YYYY上的MMPM通过姓氏的姓氏进行验证职位: 工人,组织: 1区团队”
我想返回拆分为单独列的数据
一次,“at” 和 “on” 之间的部分,例如,HH:MMpm
一个用于日期,“开” 和 “按” 之间的部分,例如,DD/MM/YYYY
一个是名字,“by” 和 “职位名称” 之间的部分,例如,姓氏
一个用于职称,即 “职位名称” 和 “组织” 之间的部分,例如,工人
一个用于组织,在 ',组织:' 之后的部分,例如,区域1团队
我用这样的表达式做了第一部分
substr (文本 _ 答案,12,9) Verfied_time,
substr (文本 _ 答案,24,10) Verfied_date,
但是我不确定如何处理后面的部分。
感谢您的协助
“在HH: DD/MM/YYYY上的MMPM通过姓氏的姓氏进行验证职位: 工人,组织: 1区团队”
我想返回拆分为单独列的数据
一次,“at” 和 “on” 之间的部分,例如,HH:MMpm
一个用于日期,“开” 和 “按” 之间的部分,例如,DD/MM/YYYY
一个是名字,“by” 和 “职位名称” 之间的部分,例如,姓氏
一个用于职称,即 “职位名称” 和 “组织” 之间的部分,例如,工人
一个用于组织,在 ',组织:' 之后的部分,例如,区域1团队
我用这样的表达式做了第一部分
substr (文本 _ 答案,12,9) Verfied_time,
substr (文本 _ 答案,24,10) Verfied_date,
但是我不确定如何处理后面的部分。
感谢您的协助
专家解答
Instr给出了字符串中特定文本的位置。所以你可以将它与substr结合起来做你正在寻找的事情:
-Substr的第二个参数是起点。因此,将instr的结果传递为您的起点,在此之后的字符偏移
-第三是长度。因此,从上面的步骤中减去您的instr在标记结尾的字符串上的结果。还要减去多余字符的偏移量
例如:
-Substr的第二个参数是起点。因此,将instr的结果传递为您的起点,在此之后的字符偏移
-第三是长度。因此,从上面的步骤中减去您的instr在标记结尾的字符串上的结果。还要减去多余字符的偏移量
例如:
with rws as (
select 'Verified at HH:MMPM on DD/MM/YYYY by FirstName Surname Job Title: Worker, Organisation: Area 1 Team' str from dual
)
select instr(str, 'by'),
instr(str, 'Job Title'),
substr(str, instr(str, 'by')+3, (instr(str, 'Job Title')-instr(str, 'by')-3))
from rws;
INSTR(STR,'BY') INSTR(STR,'JOBTITLE') SUBSTR(STR,INSTR(STR,'BY')+3,(INSTR(STR,'JOBTITLE')-INSTR(STR,'BY')-3))
35 56 FirstName Surname
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




