Postgresql列不存在

时间:2018-08-24 15:13:25

标签: sql postgresql quoted-identifier

我正在运行一个简单的选择查询:

SELECT return_part_i.CntrctTrmntnInd FROM return_part_i LIMIT 10;

并出现以下错误:

  

错误:列return_part_i.cntrcttrmntnind不存在第1行:   SELECT return_part_i.CntrctTrmntnInd FROM return_part_i LIMI ...                  ^提示:也许您打算引用列“ return_part_i.CntrctTrmntnInd”。 SQL状态:42703字符:8

我尝试了带有和不带有表标识符的查询。我直接从提示中复制字段名称。数据库中的许多字段都在发生这种情况。

1 个答案:

答案 0 :(得分:3)

如果列名中确实包含驼峰式大写字母,则必须在列名中用双引号引起来

SELECT "CntrctTrmntnInd"  FROM return_part_i LIMIT 10;

PostgreSQL列(对象)名称用双引号指定时区分大小写。未加引号的标识符会自动用作小写字母,因此正确的大小写序列必须用双引号引起来

并且如雷蒙德·尼兰(Raymond Nijland)所正确建议的那样,如果您想以LIMIT作为结果,则应使用

SELECT "CntrctTrmntnInd"  FROM return_part_i ORDER BY "CntrctTrmntnInd" LIMIT 10;