首页 > 解决方案 > 无法使用 REPLACE 格式化 CROSS APPLY 以修复地址

问题描述

我有一个庞大的(政府)地址数据库,没有经过验证,因此需要对某些字符串进行批量查找/替换。例如,我想将“STR”替换为“ST”,将“AVEN”替换为“AVE”。我想用一个像下面我从另一个网站得到的功能来做到这一点

-- Input: Red, Blue, Green
-- Output: RGB
SELECT 
 s.Colors
FROM
 (SELECT 'Red, Green, Blue' AS Colors) c
 CROSS APPLY (SELECT REPLACE(c.Colors,'Red','R') AS Colors) r
 CROSS APPLY (SELECT REPLACE(r.Colors,'Green','G') AS Colors) g
 CROSS APPLY (SELECT REPLACE(g.Colors,'Blue','B') AS Colors) b
 CROSS APPLY (SELECT REPLACE(b.Colors,', ','') AS Colors) s

不幸的是,我的格式知识很薄弱,因此我尝试将其适应此查询的尝试都失败了。

SELECT QICISFacilities.[Programmatic ID], QICISFacilities.[Site Name], QICISFacilities.Address
FROM (SELECT QICISFacilities) c
CROSS APPLY (SELECT REPLACE (c.address, 'STR','ST') AS Address);

我收到“FROM 请求中的语法错误”,我不知道自己在做什么,请帮忙。

标签: sqlms-accessreplace

解决方案


推荐阅读