如果我有一个表:
CREATE TABLE
abc
(
xyz INTEGER,
abc INTEGER
);
我做:
select * from abc order by abc;
它按名为 ABC 的列工作和排序。
但是,如果我没有名为"abc"的列:
CREATE TABLE
abc
(
xyz INTEGER,
abcxyz INTEGER
);
但我运行相同的查询:
select * from abc order by abc;
没有从Postgres返回的错误消息。
我只是想知道为什么 postgres 不返回错误消息,因为很明显,"abc"不是一个有效的列,所以我不可能按该列排序。
我正在使用PostgreSQL 9.6.7
Postgresql 在创建表时会创建一个带有结构的默认TYPE
。所以当我们在查询中使用的时候会作为TYPE
返回,来验证这一点,
在表中插入一行并运行此行
select pg_typeof(abc) from abc;
它给出了结果。
pg_typeof
abc