Sql 从现有数据中获取特定字符串并将其放入新列中

Sql 从现有数据中获取特定字符串并将其放入新列中,sql,oracle,plsql,Sql,Oracle,Plsql,我有一张像这样的大桌子: DATA NUM CITY ----------------------------------- --------------- -------------------- ABC140180B 51368 Hong Kong ABC140180

我有一张像这样的大桌子:

DATA                                NUM             CITY               
----------------------------------- --------------- --------------------
ABC140180B                          51368           Hong Kong
ABC140180                           98563           New York
CENTER ABC140180                    65125           Philadephia
ABC230142                           48101           PARK          
SOUTHFIELD ABC230142                48083           Tokyo
GENERAL SURGERY ABC230053LJ         45896           Philadephia
CARDIOVASCULAR MEDICINE ABC230053LK 48192           Philadephia
GYNECOLOGIC ABC230053LL             25874           Philadephia
NEUROSURGERY ABC230053LC            48192           Tokyo
HENRY ABC230053FG                   11524           Tokyo
UROGYNECOLOGY ABC230053FH           62531           Tokyo
是否有任何方法可以从数据中获取所有带有“ABCXXXXXXX”的字符串,并创建一个包含以下数据的新表,其中包含一个新列:

DATA                                NUM             CITY                 DSH
----------------------------------- --------------- -------------------- -----------------
ABC140180B                          51368           Hong Kong            ABC140180B                          
ABC140180                           98563           New York             ABC140180                                     
CENTER ABC140180                    65125           Philadephia          ABC140180  
ABC230142                           48101           PARK                 ABC230142                                   
SOUTHFIELD ABC230142                48083           Tokyo                ABC230142  
GENERAL SURGERY ABC230053LJ         45896           Philadephia          ABC230053LJ         
CARDIOVASCULAR MEDICINE ABC230053LK 48192           Philadephia          ABC230053LK
GYNECOLOGIC ABC230053LL             25874           Philadephia          ABC230053LL
NEUROSURGERY ABC230053LC            48192           Tokyo                ABC230053LC
HENRY ABC230053FG                   11524           Tokyo                ABC230053FG
UROGYNECOLOGY ABC230053FH           62531           Tokyo                ABC230053FH
有人能帮我吗


提前感谢

根据您给出的示例,您希望在最后一个空格后使用字符串中的最后一个“token”

Oracle提供了
regexp\u substr()


根据您给出的示例,您需要在最后一个空格之后的字符串中的最后一个“token”

Oracle提供了
regexp\u substr()


也可以使用
substr()
instr()


这将从
ABC
中提取每个字符并转发
substr()
instr()
也可以这样做:


这将获取ABC中的每个字符并转发

哈哈,你说的“垃圾”是什么意思?@roryap可能是垃圾:)哈哈,你说的“垃圾”是什么意思?@roryap可能是垃圾:)
select . . ., regexp_substr(' ' || data, ' [^ ]*$', 1, 1) as dsh
select t.*,
       substr(t.YourColumn, instr(t.YourColumn, 'ABC') + 1)  as DSH
from YourTable t;