在 BIG QUERY 中进行透视时,行数据有空格时会出现错误。字段只能包含字母 数字 下划线 以字母或下划线开头

2024-03-27

我正在尝试使用下面的查询在大查询中进行旋转

select * from
(SELECT desc,qty,RSN_DESC FROM `TABLE`)
  PIVOT(SUM(qty) FOR RSN_DESC IN ('Example1', 'Example2', 'Example3', 'Example 3','Example4','Example 5',''))

如果仔细观察“示例 3”和“示例 5”,我们会发现数据之间有一个空格,例如“Store Ops”(来自我的数据的实际示例)。透视不适用于此类数据,并且会给出如下错误

Invalid field name "Store Ops". Fields must contain only letters, numbers, and underscores, start with a letter or underscore, and be at most 300 characters long.

关于如何处理这种情况有什么建议吗?


使用下面代替

select * from
(SELECT `desc`,qty,RSN_DESC FROM `TABLE`)
PIVOT(SUM(qty) FOR replace(RSN_DESC, ' ', '_') IN ('Example1', 'Example2', 'Example3', 'Example_3','Example4','Example_5',''))    

在这种情况下,“Example3”、“Example_3”将是不同的列

or

select * from
(SELECT `desc`,qty,RSN_DESC FROM `TABLE`)
PIVOT(SUM(qty) FOR replace(RSN_DESC, ' ', '') IN ('Example1', 'Example2', 'Example3', 'Example4','Example5',''))    

在这种情况下,“Example3”和“Example 3”将折叠成一列

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 BIG QUERY 中进行透视时,行数据有空格时会出现错误。字段只能包含字母 数字 下划线 以字母或下划线开头 的相关文章

随机推荐