语句不使用args时出现雪花的情况

时间:2020-08-03 21:02:47

标签: python sql snowflake-cloud-data-platform args

我试图使select语句依赖于我通过python脚本传递的args变量(在本例中为args.type ='hello')。

它看起来像这样:

  case when '{{type}}' = 'hello'
  then
        SELECT
        name from table1
  else
        SELECT
        city from table2 where code='usa'
  end

我得到的错误:

syntax error unexpected 'case'.
syntax error unexpected 'else'.
syntax error unexpected ')'.

我也尝试过IFF子句,但确实遇到了同样的问题。

2 个答案:

答案 0 :(得分:0)

如果您将此SQL发送到雪花并且由于语法错误而失败,我希望您会收到类似“ SQL编译错误:...”的错误。因此,我想知道问题是否在您的python程序中。

您可以分享更多吗?

答案 1 :(得分:0)

您在哪里设置一些参数? 雪花python连接器支持多种语法:

format: .execute("... WHERE my_column = %s", (value,))
pyformat: .execute("... WHERE my_column = %(name)s", {"name": value})
qmark: .execute("... WHERE my_column = ?", (value,))
numeric: .execute("... WHERE my_column = :1", (value,))

如果您使用的是python3,则可以使用类似f“ {pythonvar}”的名称。 你能给我们更多关于你在做什么的背景吗?