sql - Postgresql 列不存在
问题描述
我正在运行一个简单的选择查询:
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
我已经尝试过使用和不使用表标识符的查询。我直接从提示中复制字段名称。数据库中的许多字段都会发生这种情况。
解决方案
如果您的列名中确实有驼峰式大小写,那么您必须用双引号将列名括起来
SELECT "CntrctTrmntnInd" FROM return_part_i LIMIT 10;
PostgreSQL 列(对象)名称在用双引号指定时区分大小写。不带引号的标识符自动用作小写,因此正确的大小写顺序必须用双引号书写
并且正如 Raymond Nijland 正确建议的那样,如果您想要一个 LIMIT 结果,您应该使用 order by
SELECT "CntrctTrmntnInd" FROM return_part_i ORDER BY "CntrctTrmntnInd" LIMIT 10;
推荐阅读
- html - 在 Firefox 的 web-inspector 中编辑后保存本地文件的一种方法
- asp.net-core - ASP.NET Core MVC:如何存储 iprogress 结果
- python-3.x - 将单词边界添加到 python 正则表达式捕获组
- laravel - 如何在没有密码的情况下运行 Auth::logoutOtherDevices()?
- express - 即使使用 Access-Control-Allow-Origin 也被 CORS 阻止的 API 调用:* 存在于标头中
- java - 由于类卸载,静态变量可以多次初始化吗?
- fpga - 使用 Altera Cyclone FPGA 在 quartus 中低逻辑电平打开 LED 和高逻辑电平关闭 LED
- r - 一次为多个输入文件创建一个循环
- istio - 来自 Sidecar 代理的 TLS 发起失败并出现错误 [TLS 错误:268436576:SSL 例程:OPENSSL_internal:]
- typescript - 创建突变后添加到 Apollo 客户端缓存中的数组