我有如下所示的数据库表:
Class | ClassNumber
S | S3
T | T37
T | T50
S | SS07
S | S4
S | SG27
ClassNumber
包含Class
的值和另一个标识符。因此,如果Class
是S
,则意味着ClassNumber
必须以S
开头,后跟另一个标识符。
我想提取ClassNumber
中的标识符。
如果我使用REPLACE
函数,它将替换所有匹配的字符。但是我只希望删除前缀。
SELECT REPLACE(ClassNumber, Class, '') FROM MY_TABLE
这将使SS07
成为07
。但我希望它返回S07
。
我该怎么做?
答案 0 :(得分:1)
尝试REGEXP_REPLACE
SELECT CLASSNUMBER,REGEXP_REPLACE(ClassNumber, '^'||Class, '') as id FROM t
或者,如果您确定它始终是单个数字类,则只需使用
SUBSTR(CLASSNUMBER,2)