如果我有一张桌子:
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