postgresql - 如果没有具有该名称的列,当我尝试按表名排序时,为什么 postgresql 不提示?

标签 postgresql

如果我有一张 table :

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

关于postgresql - 如果没有具有该名称的列,当我尝试按表名排序时,为什么 postgresql 不提示?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49055256/

相关文章:

hibernate - 使用 native 查询的 JPA(Hibernate) 和 postgresql 批量插入

mysql - 比较数据库和它们的锁

sql - Postgres 选择具有百分比匹配的行,并按百分比排序

postgresql - 如何将 postgres 数据库转储到 .sql 文件中

sql - 我的sql查询出错

postgresql - 如何在整个Gitlab管道生命周期中创建持久数据库?

sql - Postgres 递归查询 - 获取给定叶节点的根路径

hibernate - postgresql:将 bytea 转换为 bigint

python - 部署 Django 应用程序

postgresql - 使用变量作为 jsonb_extract_path 中的搜索键