首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从字符串中提取数字-自定义

从字符串中提取数字-自定义
EN

Stack Overflow用户
提问于 2019-08-23 20:47:20
回答 2查看 28关注 0票数 1

我想从一个字符串中提取“大部分”数字,并在末尾加上"JW“。我的价值观如下:

代码语言:javascript
复制
RFID_DP_IDS339020JW3_IDMsg - Result = 339020JW
RFID_DP_IDSA72130JW_IDMsg --> 72130JW
RFID_DP_IDS337310JW1_IDMsg --> 337310JW

基本上我会去掉所有的首字母,保留所有的数字和JW

现在我有了这个

代码语言:javascript
复制
regexp_replace(Business_CONTEXT, '[^0-9]', '')||'JW' RegistrationPoint

但这将包括'JW‘之后的数字

有什么想法吗?

EN

回答 2

Stack Overflow用户

发布于 2019-08-23 20:59:22

这个怎么样?

在一堆digits

  • result2返回数字+ JW

之后,

  • result将恰好返回两个字母

选择你认为最合适的。

代码语言:javascript
复制
SQL> with test (col) as
  2    (select 'RFID_DP_IDS339020JW3_IDMsg' from dual union all
  3     select 'RFID_DP_IDSA72130JW_IDMsg'  from dual union all
  4     select 'RFID_DP_IDS337310JW1_IDMsg' from dual
  5    )
  6  select col,
  7    regexp_substr(col, '\d+[[:alpha:]]{2}') result,
  8    regexp_substr(col, '\d+JW') result2
  9  from test;

COL                        RESULT                     RESULT2
-------------------------- -------------------------- --------------------------
RFID_DP_IDS339020JW3_IDMsg 339020JW                   339020JW
RFID_DP_IDSA72130JW_IDMsg  72130JW                    72130JW
RFID_DP_IDS337310JW1_IDMsg 337310JW                   337310JW

SQL>
票数 1
EN

Stack Overflow用户

发布于 2019-08-23 21:42:19

如果你真的想从给定的字符串中提取出最长的数字字符串,你可以使用以下方法:

代码语言:javascript
复制
  WITH test (Business_CONTEXT) AS 
    (SELECT 'RFID_DP_IDS339020JW3_I9DMsg' from dual union all
     SELECT 'RFID_DP_IDSA72130JW_IDMsg'  from dual union all
     SELECT 'RFID_DP_IDS337310JW1_IDMsg' from dual
    )
  SELECT Business_CONTEXT
       , (SELECT MAX(regexp_substr(Business_CONTEXT, '\d+', 1, LEVEL)) 
                 KEEP (dense_rank last ORDER BY LENGTH(regexp_substr(Business_CONTEXT, '\d+', 1, LEVEL)))
            FROM dual
            CONNECT BY regexp_substr(Business_CONTEXT, '\d+', 1, LEVEL) IS NOT NULL) num
    FROM test

结果:

代码语言:javascript
复制
Business_CONTEXT            | NUM
----------------------------+-----
RFID_DP_IDS339020JW3_I9DMsg | 339020
RFID_DP_IDSA72130JW_IDMsg   |  72130
RFID_DP_IDS337310JW1_IDMsg  | 337310
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57626654

复制
相关文章

相似问题

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