snowflake case when语句不能使用args

olmpazwi  于 2021-07-24  发布在  Java
关注(0)|答案(2)|浏览(327)

我试图使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子句,但遇到了同样的问题。

8iwquhpp

8iwquhpp1#

如果您将此sql发送到snowflake,而它由于语法错误而失败,那么我希望您得到类似“sql编译错误:…”的错误。因此,我想知道这个问题是否不在python程序中。
你能分享更多吗?

vmpqdwk3

vmpqdwk32#

你想在哪里设置一些参数?snowflake 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}的东西。你能给我们讲一下你在做什么吗?

相关问题