SQL GROUP BY,ORDER BY查询返回语法错误

问题描述 投票:0回答:2

以下SQL代码未正确传递给我的后端代码。

这个SQL代码在Postico中工作得很好,但是当它在后端被调用时它不起作用,提供从我的终端粘贴的结果。

db.any(
  "SELECT week_num, COUNT(id) 
   FROM verylost 
   GROUP BY week_num  
   ORDER BY week_num ASC;")

Unhandled rejection error: syntax error at or near "ORDER BY week_num"
    at Connection.parseE (/Users/brentnewman/DC/final_project/classroom_emotion/backend/node_modules/pg/lib/connection.js:554:11)
    at Connection.parseMessage (/Users/brentnewman/DC/final_project/classroom_emotion/backend/node_modules/pg/lib/connection.js:379:19)
    at Socket.<anonymous> (/Users/brentnewman/DC/final_project/classroom_emotion/backend/node_modules/pg/lib/connection.js:119:22)
    at Socket.emit (events.js:189:13)
    at addChunk (_stream_readable.js:288:12)
    at readableAddChunk (_stream_readable.js:269:11)
    at Socket.Readable.push (_stream_readable.js:224:10)
    at TCP.onStreamRead [as onread] (internal/stream_base_commons.js:145:17)
sql node.js
2个回答
1
投票

正如其他人所说:问题很可能是分号。

SQL语句本身不会(也就是说,从来没有)需要由语句终止符终止。

只有在可以在SQL中编写完整的脚本和/或过程时才需要语句终止符。因此,如果您在SQL中编写整个过程,那么您将不得不使用分号来终止语句(原因是只有这样才能解析器从另一个语句中识别一个语句)。如果您只是发布单独的语句来执行,那么就没有“从另一个语句中识别出一个语句”,并且终止分号是多余的,并且如果您使用它们,这种语境中的大多数语句处理程序实际上将失败。


0
投票

你应该尝试删除尾随分号;

© www.soinside.com 2019 - 2024. All rights reserved.