我有一个表,它有20个整数列和一个名为"foo"的文本列

如果我运行查询:

SELECT * from table_name where foo is NULL

我得到一个错误:

ERROR:  column "foo" does not exist

我已经核实过他的专栏确实存在.如果我这样做:

SELECT * from table_name where count is NULL

结果输出将"foo"显示为一列....

感谢您的帮助(POSTGRESQL 8.3)

推荐答案

您意外地创建了带有尾随空格的列名,可能是phpPGadmin创建了带有双引号的列名:

create table your_table (
    "foo " -- ...
)

这会给你一个专栏,看起来好像它被称为"foo everywhere",但你必须对它进行双引号引用,并在使用它时包含空格:

select ... from your_table where "foo " is not null

最好的做法是在PostgreSQL中使用小写的无引号列名.phpPGadmin中应该有一个设置,告诉它不要引用标识符(比如表名和列名),但唉,我不使用phpPGadmin,所以我不知道该设置在哪里(或者即使它存在).

Sql相关问答推荐

仅在新值与旧值不同时才插入PostgreSQL

如何根据SQL中的列条件获取下一个时间戳?

Group By子句返回太多行

如何用3个(半)固定位置建模团队,并有效地搜索相同/不同的团队?

在Postgres中实现合并功能的干净方法,因为当目标/源不匹配时

使用WHERE子句进行筛选时,SQL SELECT查询返回总计数

PostgreSQL中的合并命令是原子的,还是需要一些类似于SQL Server版本的内容?

PostgreSQL基于2个COLS的任意组合 Select 唯一行

雅典娜嵌套Json提取液

如何使用不重复的单个顶级字段(列)向json数组 Select 多行

SQL JSON_QUERY 使用列中的值构造 json 路径并接收错误

IN子句使用的表值用户定义函数参数

根据开始时间和结束时间计算has_impact字段

joins 组合多个重复数据删除策略

添加一列并根据其他列值进行填充

我需要遍历权重值表并确定每个权重是否有效

连续几天购买的客户

在 MS Access 中连接相关记录

如何在 RavenDB Studio (RQL) 中插入更新文档

每组跨行曲折?