在Oracle中查找以字母数字开头的字符串
Posted
技术标签:
【中文标题】在Oracle中查找以字母数字开头的字符串【英文标题】:Find strings starting with alphanumeric in Oracle 【发布时间】:2021-04-08 11:21:09 【问题描述】:我只想搜索所有以字母或数字开头的记录。
我知道有 REGEXP_LIKE 可以查找 col 是否包含字母数字,但无法将其应用于开头。
SELECT * FROM mytable WHERE col1 like 'ABC:XYZ%'
我有以下格式的数据:--
ABC:XYZ
ABC:XYZ (ERW)
ABC:XYZ TMN
ABC:XYZ123
ABC:XYZRTY:YER
我试图只低于输出
ABC:XYZ
ABC:XYZ123
ABC:XYZRTY:YER
问候
【问题讨论】:
是'^[A-Za-z]'
您的正则表达式有错字。应该是'^[A-Za-z]'
。
我会改写我的问题
【参考方案1】:
这样的?采样数据到第 #7 行;您可能感兴趣的查询从第 8 行开始。
SQL> with mytable (col1) as
2 (select 'ABC:XYZ' from dual union all
3 select 'ABC:XYZ (ERW)' from dual union all
4 select 'ABC:XYZ TMN' from dual union all
5 select 'ABC:XYZ123' from dual union all
6 select 'ABC:XZYRTY:YER' from dual
7 )
8 select col1
9 from mytable
10 where not regexp_like(col1, '[^[:alnum:]:]');
COL1
--------------
ABC:XYZ
ABC:XYZ123
ABC:XZYRTY:YER
SQL>
【讨论】:
以上是关于在Oracle中查找以字母数字开头的字符串的主要内容,如果未能解决你的问题,请参考以下文章
shell脚本应用正则表达式grep,sed,awk,的应用