【问题标题】:Backslash Character Error in Postgresql Advanced SQLPostgresql 高级 SQL 中的反斜杠字符错误
【发布时间】:2018-11-30 10:28:10
【问题描述】:

我正在尝试在 Postgresql 上运行此查询:

SELECT city, year, SUM(raindays)
FROM rainfall
GROUP BY city,year 
HAVING SUM(raindays)>120
ORDER BY city
\crosstabview

在命令上,它运行得很好,但是,在任何基于 JDBC 的上下文中,它都会抛出一个错误:SQL Error [42601]: ERROR: syntax error at or near "\"

crosstabview 后面的反斜杠无法识别。我该如何克服这个问题?

任何帮助将不胜感激。

【问题讨论】:

  • 如果你把它加倍(反斜杠)怎么办?
  • 反斜杠转义没有区别@Zyigh
  • 你需要通过psql运行它
  • 我在内部创建了一个带有 crosstabview 的函数,在 psql 上运行它,但它给了我同样的错误,我可能做错了什么?

标签: postgresql pivot-table psql crosstab


【解决方案1】:

\crosstabviewpsql 命令,而不是 postgreSQL 命令。它被 psql 客户端 shell 解释为显示格式指令。您不能将其包含在 SQL 中

请参阅psql documentation 中有关“元命令”的部分

要获得类似的输出,您可能需要从命令字符串中删除 \crosstabview,然后编写一个循环,将您的查询数据收集成一种格式以供显示。

【讨论】:

  • Crosstabview 做了这么多,所以我必须重新考虑这个方法?
  • 差不多。您可以在子进程中启动 psql 并使用我猜的 \crosstabview 捕获它的输出文本。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-18
  • 2018-02-27
  • 2021-09-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多