在 varchar2 Oracle sql 中查找第一个字母
Finding first letter in a varchar2 Oracle sql
我正在尝试自动输入地址数据库的数据,但是一些门牌号的末尾添加了一个字母。因为我的数据库将字母和数字分开,所以我需要以某种方式将这两个分开。我知道我需要一个子字符串。然而,我的问题是如何获得第一个字母的位置。
例如 17b
会给我 3
其中 259a
会给我 4
您应该考虑使用 REGEXP_INSTR
or REGEXP_SUBSTR
,因为标准 INSTR
和 SUBSTR
函数不具备您需要的那种灵活性。
在你的情况下,你会使用像 REGEXP_INSTR(column_name, '[^0-9 ]')
.
这样的东西
对数字或字母使用 regexp_replace
select regexp_replace('259a', '[A-Za-z]') from dual;
select regexp_replace('259a', '[0-9]') from dual;
我正在尝试自动输入地址数据库的数据,但是一些门牌号的末尾添加了一个字母。因为我的数据库将字母和数字分开,所以我需要以某种方式将这两个分开。我知道我需要一个子字符串。然而,我的问题是如何获得第一个字母的位置。 例如 17b 会给我 3 其中 259a 会给我 4
您应该考虑使用 REGEXP_INSTR
or REGEXP_SUBSTR
,因为标准 INSTR
和 SUBSTR
函数不具备您需要的那种灵活性。
在你的情况下,你会使用像 REGEXP_INSTR(column_name, '[^0-9 ]')
.
对数字或字母使用 regexp_replace
select regexp_replace('259a', '[A-Za-z]') from dual;
select regexp_replace('259a', '[0-9]') from dual;