我有超过 500 个列需要在取消透视时使用。
select col1 , col2 , col3
from ( select * from table )
unpivot (col3 for col2 in ('value', 'value2',....'value788'))
因此,我没有编写所有这些列,而是使用保存所有这些值的表的内部选择。
select col1 , col2 , col3
from ( select * from table )
unpivot (col3 for col2 in (select value_col from val_table))
but it is throwing error. unexpected select
任何建议
您不能在 unpivot 函数的 中使用子查询。从文档中:
column_list 应仅包含文字列名称,而不是子查询。
你需要写一个存储过程 https://docs.snowflake.com/en/sql-reference/stored-procedures.html去做这个。存储过程可以将 SQL 语句作为参数,执行它,并将结果转换为新的unpivot
使用 JavaScript 的 SQL 语句。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)