我有这样的数据库表:
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
。
我该怎么做呢?
试试REGEXP_REPLACE
SELECT CLASSNUMBER,REGEXP_REPLACE(ClassNumber, '^'||Class, '') as id FROM t
或者,如果您确定它始终是单个数字类,只需使用
SUBSTR(CLASSNUMBER,2)