如何在 Oracle SQL 中显示给定字符串中的数字、字母数字和字符

How to show numeric, alphanumeric and character from a given string in Oracle SQL

我要展示,

  1. OracleCleG
  2. 10
  3. @#$%

来自字符串 "OraCle@10#$G%" 在三个不同的行中使用 oracle SQL 代码。

使用正则表达式可能是一种选择:

SQL> with test (col) as
  2    (select 'OraCle@10#$G%' from dual)
  3  select regexp_replace(col, '[^[:alpha:]]') letters,
  4         regexp_replace(col, '[^[:digit:]]') digits,
  5         regexp_replace(col, '[[:alnum:]]')  the_rest
  6  from test
  7  /

LETTERS DIGITS     THE_REST
------- ---------- ----------
OraCleG 10         @#$%

SQL>

如果必须是3行,那么UNION他们:

SQL> with test (col) as
  2    (select 'OraCle@10#$G%' from dual)
  3  select regexp_replace(col, '[^[:alpha:]]') value from test
  4  union all
  5  select regexp_replace(col, '[^[:digit:]]')       from test
  6  union all
  7  select regexp_replace(col, '[[:alnum:]]')        from test;

VALUE
-------
OraCleG
10
@#$%

SQL>