Oracle评论查找第一个字符以Alpha开头,第二个字符为数字

时间:2016-08-18 15:23:46

标签: oracle oracle11g

我有一个名为DOM列名position

的表

我在位置列

中有以下值列表
  

SN125A,A1234,SSD123,B12347,SDDF234,11123,E1O123,B12345

我的要求是找到第一个字母是Alpha,第二个字母是数字的位置。

所以我期望的职位是

  

A1234,B12347,E1O123,B12345

一旦找到这些位置,我就需要删除上述位置的第一个字符

所以我的最终输出应该是:

  

1234,12347,1O123,12345(从上面的位置移除了alpha)

我们如何在Oracle中实现这一目标。

我在查询中尝试了以下REGEXP_LIKE(POSITIONS, '[A-Za-z]'),但我不确定。

2 个答案:

答案 0 :(得分:1)

您应匹配行^的开头,并测试以下数字

^[A-Za-z][0-9]

您可以这样添加第三个参数来匹配case-insensitive

REGEXP_LIKE (POSITIONS, '^[A-Z][0-9]', 'i');

您可以使用SUBSTR

删除第一个字符
SUBSTR(POSITIONS, 2) AS pos

答案 1 :(得分:0)

dom是表名,position是列名

select * from dom;

position
----------
SN125A
A1234
SSD123
B12347
SDDF234
11123
E1O123
B12345

8 rows selected.




      1  select substr(position, 2,length(position)) from dom
      2* where regexp_like(position,'^[[:alpha:]][[:digit:]]')
    SQL> /

    SUBSTR(position,2,LENGTH(position))
    --------------------------------------------
    1234
    12347
    1O123
    12345