【问题标题】:Column bind variables in SnowflakeSnowflake 中的列绑定变量
【发布时间】:2020-04-30 19:25:17
【问题描述】:

Snowflake 提供了(不寻常的)在表名中绑定变量的能力: https://docs.snowflake.com/en/sql-reference/literals-table.html

我想知道是否可以对列执行相同的操作,如下所示:

select count(1) from mytable where ? is null

【问题讨论】:

  • 如果没有文档,我倾向于尝试看看它是否有效..
  • 我做到了,但它并没有完全奏效。我想知道是否有类似于他们为表参数化所做的事情,因为它是not normally something you can do
  • 好吧,如果您使用存储过程,您可以这样做,因为您可以编写 SQL,最后我了解到没有预先计算的计划,因此允许变量表名称没有问题。允许我不了解您使用半动态 SQL 的上下文,但无法在该层形成完整的 SQL .. 也就是我们从我们在 aws 中运行的 node.js 应用程序中或将我们所有的 sql 转换为不在身边的任务,所以这就是全部,所以从那里可以编写我们所有的动态 sql 需求。
  • 回答手头的问题并不重要,但如果你很好奇,我正在编写一个对某些视图进行大量数据质量检查的应用程序。视图的模型存储在 yaml 文件中,这些文件定义了每个视图的字段以及一些特征,如可空性或允许值。
  • 是的,我绝对同意我可以自己连接字符串,但宁愿使用绑定变量来确保清理安全性和正确性

标签: snowflake-cloud-data-platform


【解决方案1】:

如果我正确理解了这个问题,那么标识符文字就是您要查找的内容:

select count(1) from mytable where identifier(?) is null

文档:https://docs.snowflake.com/en/sql-reference/identifier-literal.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-15
    • 1970-01-01
    相关资源
    最近更新 更多