Oracle匹配后缀仅为数字的模式

时间:2018-02-12 19:01:46

标签: sql oracle

有没有办法从表中选择SELECT,以便我可以指定前缀并将“%”限制为仅数字

所以,如果我有

column
------
abc123
abc124
abc0023
abcdef

如果我喜欢SELECT * FROM TABLE WHERE column LIKE 'abc%',那么它会找到所有这些。

我只想要带有数字后缀的那些。事实上,如果重要的话,我真的想要MAX()。

前缀可以是任何长度的字符串。

2 个答案:

答案 0 :(得分:4)

您可以使用regexp_like()

where regexp_like(column, '[0-9]+$')

这只是说该列以一位或多位数结尾。

答案 1 :(得分:1)

看到你在Gordon回答中留下的评论后,你似乎想做这样的事情:

SQL> with test (col) as
  2  (select 'abc123' from dual union
  3   select 'ABc124' from dual union
  4   select 'ABC0023' from dual union
  5   select 'ABCdef' from dual
  6  )
  7  select col
  8  from test
  9  where regexp_like(col, 'abc\d+$', 'i');

COL
-------
ABC0023
ABc124
abc123

它做了什么?

  • abc代表您正在寻找的字符串
  • \d+代表任意数字
  • $表示该号码必须放在COL
  • 的末尾
  • i表示搜索不区分大小写