我是一位自学成才的PL / SQL查询编写者,对编码相对较新。我知道如何执行基本功能,但没有接受过正式培训,通常以我的方式解决我遇到的任何问题。大多数时候,我只是在PL / SQL开发人员中加入不同的表或视图来制作
我试图根据一系列三个分隔符从表中分解一行,在本例中为“>”(包括空格)。例如,我想从名为Locations的表中拉出“USA> California> Los Angeles”的位置,并将其分成三个不同的列(Country,State和City)。但是,重复分隔符的数量可以变化。有时它可能只是美国>加利福尼亚州和其他时候可能是美国>加利福尼亚>洛杉矶>康普顿。
我想在一个表中使用此列
[位置]
[美国>加利福尼亚>洛杉矶]
并将三列插入另一个表
[国家] [国家] [城市]
[美国] [加利福尼亚] [洛杉矶]
到目前为止,我只能通过使用查询而不是函数/更高级的技术来解决问题。如果有任何方法可以保持这个简单和查询,我真的很感激任何见解!同样,我使用PL / SQL开发人员,所以我知道限制了我能够使用的某些功能。
答案 0 :(得分:0)
不太好,但应该适合你:
insert into <your table 2> (Country, State, City)
select trim(REGEXP_SUBSTR(Location, '^([^>])*')),
trim(REGEXP_REPLACE(REGEXP_SUBSTR(Location, '>([^>])*'), '>', '')),
trim(REGEXP_REPLACE(REGEXP_SUBSTR(Location, '>([^>])*', 1, 2), '>', ''))
from <your table 1>;
此致