【问题标题】:How to split a string with multiple characters into seperate columns in SQL?如何将具有多个字符的字符串拆分为 SQL 中的单独列?
【发布时间】:2023-01-31 23:40:23
【问题描述】:
我有一张看起来像这样的表:
| Cust_ID |
Customer_Group |
Company |
City |
Country |
| 1927373 |
Microsoft - Liverpool - United Kingdom |
|
|
|
| 1928373 |
Google - Mumbai - India |
|
|
|
我试图弄清楚如何将破折号分开以将不同的值放入不同的列中。因此,第一个破折号 ('-') 之前的第一个词将填充“公司”列。我还想在第一个破折号之后获取单词并将其填充到“城市”列中。最后,我还想在第二个破折号之后获取字符串的最后一部分,以将其填充到我的“国家/地区”列中。
所以目标是像这样更新表:
| Cust_ID |
Customer_Group |
Company |
City |
Country |
| 1927373 |
Microsoft - Liverpool - United Kingdom |
Microsoft |
Liverpool |
United Kingdom |
| 1928373 |
Google-Mumbai-India |
Google |
Mumbai |
India |
【问题讨论】:
标签:
sql
oracle-sqldeveloper
toad
【解决方案1】:
UPDATE your_table
SET Company = SUBSTRING(Customer_Group, 1, CHARINDEX('-', Customer_Group) - 1),
City = SUBSTRING(Customer_Group, CHARINDEX('-', Customer_Group) + 1, CHARINDEX('-', Customer_Group, CHARINDEX('-', Customer_Group) + 1) - CHARINDEX('-', Customer_Group) - 1),
Country = SUBSTRING(Customer_Group, CHARINDEX('-', Customer_Group, CHARINDEX('-', Customer_Group) + 1) + 1, LEN(Customer_Group))