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;