【问题标题】:bigquery SQL to create a macro variable (or parametrised automated variable)bigquery SQL 创建宏变量(或参数化自动变量)
【发布时间】:2018-12-28 18:12:55
【问题描述】:

寻求信息:

我想知道是否可以在 Bigquery 中创建宏变量(参数化)。

类似于 SAS 示例,例如:

%LET tempvar = ('x1','x2'.....'xn')

我可以在以后的 SQL 子句中随时调用。

任何信息表示赞赏。

谢谢

【问题讨论】:

标签: google-bigquery


【解决方案1】:

根据您想要实现的具体目标,您可能可以使用 UDF,但通常 BQ 不像 MYSQL 那样支持参数功能。

检查here

【讨论】:

  • 感谢 FKrauss 和 Pentium10 的建议。
  • Pentium10 - @corpus 示例无法在 Web UI 中运行 - 不幸的是,这是我在工作中必须使用的......但是 WITH 示例现在很好 - 这就是我所做的提前: WITH params AS (select ('x','y','z') as prod1, ('a','b','c') as exclude_list....(直到我定期定义所有使用的参数)...),非常感谢您提供的链接 - 在我学会如何使用 STRING udf
  • 不幸的是,使用 WITH 创建一些参数没有按照链接中的建议工作 BQ 验证器是绿色的,所以很好 - 但“where”语句不起作用。尝试使用 'IN' 而不是 '=' 因为 prod_cat1 是一个值列表,但收到错误消息,指出“期望 UNNEST ....”,但使用 '=' 验证器显示绿色但它不起作用我还放了“ " 围绕 parm 值避免嵌套
  • (THE QUERY) AS FOLLOWS: with parms AS ( SELECT "('pd001','ws008','pf003')" AS prod_cat1, "('pd001','ws008')" AS prod_cat2, "('pf003')" AS prod_cat3, "('purchase')" AS buy_trans ), mytable AS ( select id, date, prodvar from DBtable, parms where prodvar = prod_cat1 and event = buy_trans ) SELECT * FROM我的表
  • 任何建议表示赞赏
猜你喜欢
  • 1970-01-01
  • 2013-01-23
  • 1970-01-01
  • 2013-10-02
  • 2017-10-04
  • 1970-01-01
  • 1970-01-01
  • 2018-10-31
  • 2016-07-07
相关资源
最近更新 更多