2017-04-07 109 views
0

我有编号和对应的字符串是这样的:SQL:分割字符串的分隔符多次到新列

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 

是否可以通过第一个“_”分割字符串,然后再用“_”分割第二个字符串?

+0

您正在使用哪种RDBMS? – GurV

回答

1

如果字符串总是只有国家,州和城市,那么你可以尝试类似的东西。

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;