Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何根据Oracle中另一列的内容删除列中的部分字符串_Sql_String_Oracle - Fatal编程技术网

Sql 如何根据Oracle中另一列的内容删除列中的部分字符串

Sql 如何根据Oracle中另一列的内容删除列中的部分字符串,sql,string,oracle,Sql,String,Oracle,我的数据库表如下所示: Class | ClassNumber S | S3 T | T37 T | T50 S | SS07 S | S4 S | SG27 ClassNumber包含Class的值和另一个标识符。这意味着,如果类是S,那么它意味着类号必须以S开头,然后是另一个标识符 我想提取ClassNumber中的标识符 如果我使用REPLACE功能,它将替换所有匹配的字符。但我只想删除前缀 SELECT REP

我的数据库表如下所示:

Class   | ClassNumber
S       | S3
T       | T37
T       | T50
S       | SS07
S       | S4
S       | SG27
ClassNumber
包含
Class
的值和另一个标识符。这意味着,如果
S
,那么它意味着
类号
必须以
S
开头,然后是另一个标识符

我想提取
ClassNumber
中的标识符

如果我使用
REPLACE
功能,它将替换所有匹配的字符。但我只想删除前缀

SELECT REPLACE(ClassNumber, Class, '') FROM MY_TABLE
这将使
SS07
变为
07
。但我希望它返回
S07


如何执行此操作?

尝试
REGEXP\u REPLACE

SELECT CLASSNUMBER,REGEXP_REPLACE(ClassNumber, '^'||Class, '') as id FROM t
或者,如果您确定它始终是一个单位数字类,只需使用

SUBSTR(CLASSNUMBER,2)