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

PostgreSQL使用DISTINCT时出现near DISTINCT语法错误原因问询

PostgreSQL DISTINCT 语法报错原因

这一报错是由SQL标准以及PostgreSQL的语法规则限制导致的,核心原因如下:

  • DISTINCT是SELECT子句的结果集修饰符,作用范围是当前查询返回的所有行记录,而非某一列的属性,语法层面要求它必须紧跟在SELECT关键字之后,不能放在列名的后面。
  • 标准SELECT子句的语法结构为:SELECT [DISTINCT] 列表达式1 [, 列表达式2 ...] FROM 表名 [其他子句],当你把DISTINCT放在列名之后时,PostgreSQL的语法解析器无法识别该位置出现的DISTINCT关键字,就会抛出你遇到的报错:

ERROR: syntax error at or near "DISTINCT"

  • 直观写法对比参考:
    • 错误写法(触发报错):SELECT name, DISTINCT age FROM student;
    • 正确写法(单字段去重):SELECT DISTINCT age FROM student;
    • 正确写法(多字段组合去重):SELECT DISTINCT name, age FROM student; 该写法会对name和age两个字段的组合值进行去重,只有两个字段值完全相同的行才会被判定为重复行剔除。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 20:45:07