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

PostgreSQL查询数字命名列返回?column?的问题咨询

问题原因与解决方案

你遇到的问题不是PostgreSQL的bug,而是错误的列引用方式导致的:

  • 查询语句里的'0.0.0'和'1.8.0'是单引号包裹的字符串常量,PostgreSQL会直接返回这个字符串本身,而非对应列的数据;同时因为你没给这些字符串指定别名,结果列名会显示为?column?。
  • 你的列名属于非标准标识符(以数字开头、包含点号),PostgreSQL要求这类标识符必须用双引号包裹才能正确识别为列名。

正确的查询语句

将单引号替换为双引号即可:

SELECT "0.0.0", "1.8.0", factor FROM meterdata;

关于非标准列名的使用说明

PostgreSQL允许使用这类非标准列名,但有以下注意事项:

  • 必须始终用双引号包裹引用,否则会被解析为字符串、数值或者表达式(比如1.8.0会被当成数值1.8)。
  • 虽然支持,但这类列名会增加SQL编写的复杂度,容易引发语法错误,同时降低代码可读性,不推荐使用。如果可能,建议改用符合标准的标识符(以字母开头,仅包含字母、数字、下划线或美元符号)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 11:06:48