PostgreSQL执行基础查询报错:quantity列不存在请求协助
解决方案
- 修正列名大小写:根据报错提示,实际列名为
Quantity(首字母大写),而非你写的小写quantity - 移除数值的单引号:
Quantity是数值类型,直接写数字6即可,无需用字符串引号包裹
正确的查询语句:
SELECT * FROM online_retail WHERE Quantity = 6;
原因说明
- 列名大小写问题:部分数据库(比如PostgreSQL)对标识符(列名、表名)的大小写敏感,如果创建表时列名是大写形式(且创建时用双引号包裹过),查询时必须严格匹配大小写,否则会提示列不存在。报错里的HINT已经明确指出应该引用
online_retail.Quantity,直接用这个列名即可。 - 类型匹配问题:如果
Quantity是数值类型(比如INT),用单引号包裹'6'会让数据库尝试将字符串转换为数值,虽然部分数据库能自动转换,但严格来说应该直接使用数值字面量,避免不必要的类型转换和潜在错误。
内容的提问来源于stack exchange,提问作者Pankaj Katoch
相关产品推荐
相关产品推荐

