首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Db2中的LOCATE_IN_STRING函数

Db2中的LOCATE_IN_STRING函数
EN

Stack Overflow用户
提问于 2019-05-15 07:41:05
回答 1查看 481关注 0票数 1

使用Db2中的LOCATE_IN_STRING函数,我想将字段2和字段3与下面的字符串分开。

RTN1319 5.7.18 INSUFFICIENT FUNDS

字段1: Chk编号字段

字段2: Tr日期字段

字段3:原因

我只想拉出TR日期和原因

代码语言:javascript
复制
Select TRIM(SUBSTR(TRIM('RTNCK1319 5.7.19 INSUFFICIENT FUNDS'),LOCATE_IN_STRING(TRIM('RTNCK1319 5.7.19 INSUFFICIENT FUNDS'),' ',+1))) from SYSIBM.SYSDUMMY1 ;


Select TRIM(SUBSTR(TRIM('RTNCK1319 5.7.19 INSUFFICIENT FUNDS'),LOCATE_IN_STRING(TRIM('RTNCK1319 5.7.19 INSUFFICIENT FUNDS'),' ',+1))) from SYSIBM.SYSDUMMY1 ;
EN

回答 1

Stack Overflow用户

发布于 2019-05-15 15:25:11

对于所有适用于LUW版本的Db2:

代码语言:javascript
复制
with t (s) as (values 
  'RTNCK1319  5.7.19   INSUFFICIENT FUNDS'
)
select 
  xmlcast(xmlquery('fn:tokenize($s, " +")[2]' passing ltrim(t.s) as "s") as varchar(10))
, xmlcast(xmlquery('fn:replace($s, "^ *[^ ]+ +[^ ]+ +", "")' passing t.s as "s") as varchar(100))
from t;

不使用regexp (第1-st两个中间空格必须是一个):

代码语言:javascript
复制
with t (s) as (values 
  'RTNCK1319 5.7.19 INSUFFICIENT FUNDS'
)
select 
  substr(s, s1pos+1, s2pos-s1pos) s1
, substr(s, s2pos+1) s2
from 
(
select 
  ltrim(s) s 
, locate_in_string(ltrim(s), ' ', 1, 1) s1pos
, locate_in_string(ltrim(s), ' ', 1, 2) s2pos
from t
);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56139984

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档