You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何在PostgreSQL中查询表名作为列名可正常执行?

问题解答

执行的两个查询

第一个查询

select badges from badges;
           badges
-----------------------------------
 (1,BadgeNameHere,1)
 (2,Figher,1)
(2 rows)

第二个查询

select * from badges;
 id |     name      |  person_id
----+---------------+---------------
  1 | BadgeNameHere |  1
  2 | Figher        |  1
(2 rows)

问题解答

这是PostgreSQL的专属特性,不属于SQL标准范畴。

在PostgreSQL里,每个表都会隐式对应一个行类型(复合类型),当你在SELECT子句中直接引用表名时,PostgreSQL会将整行数据打包成对应的行类型元组返回,这就是你看到的结果。

你可以在PostgreSQL官方文档的「复合类型」章节查阅相关细节,里面会详细讲解行类型的定义、引用方式以及相关用法。

内容的提问来源于stack exchange,提问作者Finlay Weber

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 20:17:03