如果我有多行并且字符串在 SQL 中的长度不同,我如何将字符串分成列?
How can I separate a string into columns, if I have multiple rows and the strings are of different length in SQL?
问题说:
检索所有发布商的所有唯一国家/地区。
我应该从中检索国家/地区的列如下:
Table:出版商
列:地址
行数:
- 美国新泽西州霍博肯
- 英国伦敦
- 美国纽约州纽约市
- 美国纽约州纽约市
- 美国纽约州纽约市
现在,我明白了,问我的答案是显示:United States, United Kingdom。但是,国家/地区在美国的情况下是城市、州和国家/地区的字符串,在英国的情况下是城市/国家/地区。
我不知道如何将列地址分隔成列,这样我就可以检索国家/地区的唯一值。
我试过使用SUBSTR()和SUBSTRING(),但是我必须把字符串写在里面,我不知道如何把它全部写到一个函数中。
您可以使用不同的 substring_index。
select distinct substring_index(Address,',',-1) from publisher;
你可以找到更多的解释here
问题说:
检索所有发布商的所有唯一国家/地区。
我应该从中检索国家/地区的列如下:
Table:出版商
列:地址
行数:
- 美国新泽西州霍博肯
- 英国伦敦
- 美国纽约州纽约市
- 美国纽约州纽约市
- 美国纽约州纽约市
现在,我明白了,问我的答案是显示:United States, United Kingdom。但是,国家/地区在美国的情况下是城市、州和国家/地区的字符串,在英国的情况下是城市/国家/地区。
我不知道如何将列地址分隔成列,这样我就可以检索国家/地区的唯一值。
我试过使用SUBSTR()和SUBSTRING(),但是我必须把字符串写在里面,我不知道如何把它全部写到一个函数中。
您可以使用不同的 substring_index。
select distinct substring_index(Address,',',-1) from publisher;
你可以找到更多的解释here