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

Sql Oracle匹配后缀仅为数字的模式,sql,oracle,Sql,Oracle,是否有一种方法可以从表中进行选择,以便我可以指定前缀并将“%”限制为仅数字 如果我有 column ------ abc123 abc124 abc0023 abcdef 如果我确实喜欢从表中选择*列,如“abc%”则会找到所有列 我只想要带数字后缀的。事实上,如果这很重要的话,我真的想要它的最大值 前缀可以是任意长度的字符串。您可以使用regexp\u like(): 这只是表示列以一个或多个数字结尾。您可以使用regexp\u like(): 这只是表示该列以一个或多个数字结尾。看到您在G

是否有一种方法可以从表中进行选择,以便我可以指定前缀并将“%”限制为仅数字

如果我有

column
------
abc123
abc124
abc0023
abcdef
如果我确实喜欢
从表中选择*列,如“abc%”
则会找到所有列

我只想要带数字后缀的。事实上,如果这很重要的话,我真的想要它的最大值


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

您可以使用
regexp\u like()


这只是表示列以一个或多个数字结尾。

您可以使用
regexp\u like()


这只是表示该列以一个或多个数字结尾。

看到您在Gordon't Response中留下的注释后,您似乎想执行以下操作:

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+
    表示任何数字
  • $
    表示数字必须放在列的末尾
  • i
    表示搜索不区分大小写

看到您在Gordon't Response中留下的评论后,您似乎想做如下操作:

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+
    表示任何数字
  • $
    表示数字必须放在列的末尾
  • i
    表示搜索不区分大小写
那么像regexp_喜欢的地方(列“abc[0-9]+$”)?似乎不起作用。它只返回null。另外,如何对字符串的基部分和列运行“UPPER”以确保大小写都相同?比如regexp_like(列'abc[0-9]+$')?似乎不起作用。它只返回null。另外,如何对字符串和列的基本部分运行“UPPER”以确保大小写都相同?