如何在 Oracle SQL 中显示给定字符串中的数字、字母数字和字符
How to show numeric, alphanumeric and character from a given string in Oracle SQL
我要展示,
- OracleCleG
- 10
- @#$%
来自字符串 "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>
我要展示,
- OracleCleG
- 10
- @#$%
来自字符串 "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>