我没有从Snowflake文档中获得很多帮助,这是关于如何使用雪花函数获取给定列名的信息。
我有自动报告,可以针对给定日期进行计算。在这里
select
sum(case when logdate = to_date(dateadd('day', - 10, '2019-11-14')) then eng_fees + data_fees end) AS to_date(dateadd('day', - 10, '2019-11-14'))
from myTable
where logdate = '2019-11-04'
我在下面的列名中得到了关注
to_date(dateadd('day', - 10, '2019-11-14'))
100
我的列名的我的预期输出
2019-11-04
100
如何在Snowflake中将预期日期打印为列名?
答案 0 :(得分:1)
您的语句使用AS来命名您的列。 Snowflake会将其视为文字,而不是计算。我想,为了执行功能内的要求,您需要使用Javascript功能。这将允许您使用预定义的计算列名来动态构建SQL语句。
https://docs.snowflake.net/manuals/sql-reference/udf-js.html
答案 1 :(得分:0)
不使用外部功能(或TASK
调度)就不能拥有动态列名。
您可以创建一个JavaScript存储过程,该存储过程将生成VIEW
,其中可以通过动态参数/表达式设置列名。
处理此问题的正常方法是使用报告工具,该报告工具可以显示带有动态标题的固定列结果集或完全运行动态SQL。
答案 2 :(得分:0)
我看到了两种接近您想要的东西的路径:
1)您可以简单地使用UNION将标头显示为第一行,并将实际的列别名更改为1 .... N-以便它们提供列数-这将是最快的,并且最便宜的
2)您可以使用动态SQL生成一个查询,该查询将动态填充您的别名,然后简单地运行它(您可以使用示例PIVOT来构造此类查询)