如何在Tableau Prep或SQL Server中将Airbnb设施数据拆分为多行?
拆分数组格式的设施字段为单行记录
在Tableau Prep Builder中实现
- 连接目标数据源后,选中
Amenities列,点击顶部工具栏的拆分按钮,选择拆分为行(别选拆分为列,这是关键) - 拆分后如果设施字段带
[、]、"这类多余符号,用替换值工具批量清理:选中拆分后的设施列,分别替换[、]、"为空字符串 - 最后保留
Listing ID和处理后的设施列,就能得到每行对应一个设施、Listing ID重复的格式
在SQL Server中实现
假设你的表名为Listings,字段是ListingID(记录ID)和Amenities(存储数组格式的字符串),可以用STRING_SPLIT结合字符串替换来实现拆分:
SELECT l.ListingID, -- 清理引号并去除首尾空格 TRIM(REPLACE(s.value, '"', '')) AS Amenity FROM Listings l -- 先去掉数组的[]符号,再按逗号拆分 CROSS APPLY STRING_SPLIT( REPLACE(REPLACE(l.Amenities, '[', ''), ']', ''), ',' ) s -- 过滤掉拆分后可能出现的空值 WHERE TRIM(REPLACE(s.value, '"', '')) <> ''
内容的提问来源于stack exchange,提问作者Dermo909
相关产品推荐
相关产品推荐

