我正在postgresql表上做一个select *,一切看起来都不错。但如果我这样做:
SELECT Name from People
它说:
ERROR: column People.Name does not exist
SQL state: 42703
Character: 8
但是在select *期间显示名称列。我试过了:
SELECT People.Name from People
同样的结果。我错过了什么吗?在任何其他数据库中执行此操作应该非常简单。
答案 0 :(得分:2)
尝试在列名称周围加上引号,即“名称”
答案 1 :(得分:2)
PostgreSQL将所有内容转换为小写。
如果您要求:
CREATE TABLE People
{
id SERIAL,
Att1 varchar(100)
-- constraints
};
SELECT Name FROM People;
您应该获取所有信息,因为pgsql将其转换为
CREATE TABLE people
{
id SERIAL,
att1 varchar(100),
-- constraints
};
SELECT name FROM people;
如果您使用pgAdmin构建表并使用混合大小写创建了字段,则需要将它们引用为成功,如下所示:
SELECT "Att1" FROM people
答案 2 :(得分:1)
Name
是一个关键字,因此在这种情况下可能无法妥善处理。最好的办法就是像这样对表进行别名:
SELECT Name from People
的 p
强>
然后使用p
选择列:
SELECT
的 p.Name
强> from People p