You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

执行psycopg2查询时出现输入末尾语法错误,应如何排查修复?

问题诱因
  • 核心错误为SQL语句语法不完整:IN运算符后的嵌套子查询开启了左括号(,但子查询逻辑结束后未补充对应的右括号),导致数据库解析SQL到语句末尾时无法匹配闭合标记,触发语法报错。
  • 次要问题为字符串拼接写法不规范:混用三重引号与反斜杠做多行字符串拼接,容易引入多余的不可见空格、符号残留,额外提升了语法错误的排查难度。
修复方案
  • 第一步补全子查询的右括号,同时建议直接使用Python三重引号原生支持多行字符串的特性,无需额外添加反斜杠拼接,修正后的代码如下:
select_query = """
SELECT first_name, value
FROM PATIENTS
WHERE first_name = %s
AND valid_start_time IN (
    SELECT MAX(valid_start_time)
    FROM PATIENTS
    WHERE first_name = %s 
    AND valid_start_time::DATE = %s 
    AND transaction_time::DATE < %s
)
"""
cursor.execute(select_query, (first_name, first_name, wanted_date[0], prespective_date,))
  • 日常调试时可直接打印select_query变量的实际取值,放到数据库客户端中执行验证,能快速定位SQL语法问题。

内容的提问来源于stack exchange,提问作者Oz Shurki

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 03:57:03