SQL:通过多次分隔符将字符串拆分为新列

时间:2017-04-07 03:22:54

标签: sql string split

我有这样的ID和相应的字符串:

id    place
234   USA_NY_Buffalo

我想将地方字符串拆分为三个字符串,每个字符串都有自己的列:

id    Country  State  City
234   USA      NY     Buffalo

当我尝试像这样分割字符串时:

SELECT id, SPLIT(place,"_") FROM mytable

我得到了

id    place
234   USA
234   NY
234   Buffalo

是否可以将字符串拆分为第一个“_”,然后再将第二个字符串拆分为“_”?

1 个答案:

答案 0 :(得分:1)

如果字符串总是只有Country,State和City,那么你可以尝试类似的东西。

select SUBSTRING_INDEX('USA_NY_Buffalo', '_', 1) AS country,
SUBSTRING_INDEX(SUBSTRING_INDEX('USA_NY_Buffalo', '_', 2), '_', -1) AS State,
SUBSTRING_INDEX(SUBSTRING_INDEX('USA_NY_Buffalo', '_', 3), '_', -1) AS City;