在 varchar2 Oracle sql 中查找第一个字母

Finding first letter in a varchar2 Oracle sql

我正在尝试自动输入地址数据库的数据,但是一些门牌号的末尾添加了一个字母。因为我的数据库将字母和数字分开,所以我需要以某种方式将这两个分开。我知道我需要一个子字符串。然而,我的问题是如何获得第一个字母的位置。 例如 17b 会给我 3 其中 259a 会给我 4

您应该考虑使用 REGEXP_INSTR or REGEXP_SUBSTR,因为标准 INSTRSUBSTR 函数不具备您需要的那种灵活性。

在你的情况下,你会使用像 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;

FIDDLE