繁体   English   中英

选择 PostgreSQL 中的数字命名列返回?列?

[英]Selecting numeric named columns in PostgreSQL returns ?column?

我正在使用 PostgreSQL 13.7 (Debian 13.7-0+deb11u1) 并有下表:

CREATE TABLE public.meterdata (
  "0.0.0" numeric(8,0) NOT NULL,
  "0.9.1" numeric(7,0) NOT NULL,
  "0.9.2" numeric(7,0) NOT NULL,
  "1.2.0" real,
  "1.6.0" real NOT NULL,
  "1.8.0" real NOT NULL,
  "1.8.1" real,
  "1.8.2" real,
  "3.8.0" real NOT NULL,
  "3.8.1" real,
  "3.8.2" real,
  "F.F" numeric(8,0) NOT NULL,
  factor numeric(4,0) NOT NULL
);

现在,当我尝试获取一些数据时:

SELECT '0.0.0','1.8.0',factor FROM meterdata

从列“因子”返回的数据是正确的,但是带有数字名称的列显示为 name ?column? 此列中每一行的值是列名(如1.8.0 )。

我在命令行中使用 PHP、phppgadmin 甚至psql进行了尝试。 全部返回?column? 对于以数字开头的每一列。

我知道使用数字作为列名并不是最佳选择,但是是否可以以某种方式使用这种方式,或者我是否被迫使用字母作为列名? 还是我遇到的一些错误? 提前感谢您的解释!

在 PostgreSQL 中,如果使用非标准列名,则必须将它们括在双引号中。 使用以数字开头或带有句点的列名没有问题,但您需要始终用双引号括起来。

单引号表示文字字符串,因此在您的查询中,查询处理器会看到一个常量字符串,而不是列名。 如果列名不明确(例如,也可能是计算列),PostgreSQL 将打印?column? 作为占位符。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM