【问题标题】:SQLite syntax error (Conversion from PostgreSQL)SQLite 语法错误(从 PostgreSQL 转换)
【发布时间】:2012-10-06 08:05:53
【问题描述】:

我正在尝试将table1table2 中的一些内容合并到另一个table3 中。我在PostgreSQL 中启动并运行了以下查询:

CREATE TABLE table3 AS SELECT 
table1.orig_zon AS orig_zon,
table1.dest_zon AS dest_zon,
table1.same_zon AS same_zon,
table1.adjacent AS adjacent,
table1.distance AS distance,
table1.da_ivtt AS da_ivtt1,
table1.da_ovtt AS da_ovtt1,
table1.tr_avail AS tr_avail1,
table1.tr_ivtt AS tr_ivtt1,
table1.tr_ovtt AS tr_ovtt1,
table1.tr_cost AS tr_cost1,
table1.au_cost AS au_cost1,
table1.sr_ivtt AS sr_ivtt1,
table1.sr_cost AS sr_cost1,
table2.da_ivtt AS da_ivtt2,
table2.da_ovtt AS da_ovtt2,
table2.tr_avail AS tr_avail2,
table2.tr_ivtt AS tr_ivtt2,
table2.tr_ovtt AS tr_ovtt2,
table2.tr_cost AS tr_cost2,
table2.au_cost AS au_cost2,
table2.sr_ivtt AS sr_ivtt2,
table2.sr_cost AS sr_cost2,
FROM table1, table2
WHERE ((table1.orig_zon = table2.orig_zon)) AND ((table1.dest_zon = table2.dest_zon));

我已经测试了一个非常小的虚拟数据集的查询,结果符合预期。但是我的实际数据库在SQLite 中,当我通过 Linux shell 在 sqlite3 中运行它时,我收到一个错误:

Error: near "table1": syntax error

谁能指出我需要进行哪些修改才能在 SQLite 中进行这项工作?感谢您的帮助!

编辑1: 删除尾随逗号后(请参阅下面 Craig 的评论),问题仍然存在。

编辑2: 玩了一会儿后,我找到了解决方法。看起来很傻,但是如果我要在一行中传递查询的内容,那么语句就可以工作!

table2.sr_ivtt AS sr_ivtt2,
table2.sr_cost AS sr_cost2 FROM table1, table2 WHERE ((table1.orig_zon = table2.orig_zon)) AND ((table1.dest_zon = table2.dest_zon));

哦!类型转换的祸根!!

【问题讨论】:

  • SQLite 的控制台是换行符终止的,所以 edit2 有意义。

标签: sql postgresql syntax sqlite


【解决方案1】:

SQL 不允许在 SELECT 列表中使用尾随逗号。

table2.sr_cost AS sr_cost2,
FROM table1, table2

应该是:

table2.sr_cost AS sr_cost2
FROM table1, table2

【讨论】:

  • 感谢您的指点!但即使在我改变它之后,问题仍然存在!同样的错误...知道为什么吗?
  • @RazorXsr 不。尝试逐步简化查询,直到它起作用,然后弄清楚你取出的最后一部分是什么。
  • 您的修复成功了...只是我不得不稍微更改一下输入...请参阅上面的编辑 2...感谢您的输入!
【解决方案2】:

你需要删除多余的逗号

table2.sr_ivtt AS sr_ivtt2,
table2.sr_cost AS sr_cost2
FROM table1, table2

【讨论】:

    猜你喜欢
    • 2021-04-02
    • 1970-01-01
    • 1970-01-01
    • 2021-11-10
    • 1970-01-01
    • 2010-12-20
    • 2014-02-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多