如何解决从SQL Server列中提取城市名称
背景:
我在SQL Server表中有一列,该列由如下所示的值组成:
Location
AM - Equi A2 Amsterdam
AM - Equi A2 Amsterdam
AM - Equi A2 Amsterdam
GRU - log Equ SP São Paulo(NUM)
GRU - log Equ SP São Paulo(NUM)
GRU - log Equ SP São Paulo(NUM)
SJC1 - DR Santa Clara(FIS)
IAD - Terremark NAV Culpepper
HKG1 - Equin HK Hong Kong
困境:
我将如何仅提取实际地点,例如: 圣保罗,阿姆斯特丹,卡尔珀珀,香港等在新的专栏中?
所需的输出:
Amsterdam
Amsterdam
Amsterdam
São Paulo
São Paulo
São Paulo
Santa Clara
Culpepper
Hong Kong
问题是我不能只在最后一个空格上分割,因为有两个单词的国家/地区被一个空格分割。 (香港,圣保罗)
我一直在做什么:
SELECT TRIM( '- ' FROM ' Table ') AS TrimmedString;
解决方法
因为没有提取模式
- 创建一个包含所有主要城市名称的表格,您可以在此在线找到csv。 (example)
- 编写一个使用like联接的查询。 (请注意,此查询不可修改。)
示例
SELECT t.Locarion,c.CityName
FROM Table t
LEFT JOIN City c on t.Location LIKE '%' + c.CityName + '%'
- 根据上一个查询中的空值插入缺少的城市。
根据这是一次查询还是一天多次运行,您可能希望更改模型以使城市表具有外键。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。