Snowflake - 如何使用函数显示列名?
Snowflake - how to display column name using function?
我没有从 Snowflake 文档中获得太多关于如何使用 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 中将预期日期打印为列名?
您的语句使用 AS 来命名您的列。 Snowflake 会将其视为文字,而不是计算。我认为,为了在函数内部执行您所请求的操作,您需要使用 Javascript 函数。这将允许您使用预定义的计算列名称动态构建 SQL 语句。
https://docs.snowflake.net/manuals/sql-reference/udf-js.html
如果不使用外部功能(或 TASK
调度),就不能拥有动态列名。
您可以创建一个 JavaScript 存储过程来生成一个 VIEW
,其中列名可以通过动态参数/表达式设置。
处理此问题的正常方法是使用报告工具,该工具可以同时显示动态 headers 或 运行 动态 SQL 的固定列结果集。
我看到有 2 条接近您想要的路径:
1) 您可以简单地使用 UNION 将 headers 显示为第一行并将实际的列别名更改为 1....N - 这样它们就可以提供列数 - 这是将是最快和最便宜的
2) 您可以使用动态 SQL 生成一个查询,该查询将动态填充您的别名,然后简单地 运行 它(您可以使用示例 PIVOT 来构造此类查询)
我没有从 Snowflake 文档中获得太多关于如何使用 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 中将预期日期打印为列名?
您的语句使用 AS 来命名您的列。 Snowflake 会将其视为文字,而不是计算。我认为,为了在函数内部执行您所请求的操作,您需要使用 Javascript 函数。这将允许您使用预定义的计算列名称动态构建 SQL 语句。
https://docs.snowflake.net/manuals/sql-reference/udf-js.html
如果不使用外部功能(或 TASK
调度),就不能拥有动态列名。
您可以创建一个 JavaScript 存储过程来生成一个 VIEW
,其中列名可以通过动态参数/表达式设置。
处理此问题的正常方法是使用报告工具,该工具可以同时显示动态 headers 或 运行 动态 SQL 的固定列结果集。
我看到有 2 条接近您想要的路径:
1) 您可以简单地使用 UNION 将 headers 显示为第一行并将实际的列别名更改为 1....N - 这样它们就可以提供列数 - 这是将是最快和最便宜的
2) 您可以使用动态 SQL 生成一个查询,该查询将动态填充您的别名,然后简单地 运行 它(您可以使用示例 PIVOT 来构造此类查询)