繁体   English   中英

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

[英]How to remove part of string in a column based on content of another column in Oracle

我有如下所示的数据库表:

Class   | ClassNumber
S       | S3
T       | T37
T       | T50
S       | SS07
S       | S4
S       | SG27

ClassNumber包含Class的值和另一个标识符。 这意味着如果ClassS ,则意味着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)

演示

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM