栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

在SQL中将表名放在结果集中的每一列之前?(特别是Postgres)

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

在SQL中将表名放在结果集中的每一列之前?(特别是Postgres)

我知道这个问题有点老了,但也许有人会偶然发现答案,这将对他们有所帮助。

做您要寻找的东西的正确方法是创建和使用视图。是的,一次性输入所有这些新列名称作为别名会有点乏味,但是如果有很多列,则可以使用一种技巧来利用PostgreSQL元数据写出视图文本:

select 'CREATE OR REPLACE VIEW people AS SELECT ' || (select string_agg(column_name || ' AS person_' || column_name, ', ')from information_schema.columnswhere table_name = 'person'group by table_name) || ' FROM person;';

运行此结果:

?column?     ------------------------------------------------------------------------------------------------------------- CREATE OR REPLACe VIEW people AS SELECT last_name AS person_last_name, first_name AS person_first_name FROM person;1 record(s) selected [Fetch metadata: 0/ms] [Fetch data: 0/ms][Executed: 4/21/12 2:05:21 PM EDT ] [Execution: 9/ms]

然后,您可以复制并执行结果,瞧:

select * from people; person_last_name     person_first_name     -------------------  --------------------  Melvoin   Wendy      Coleman   Lisa 2 record(s) selected [Fetch metadata: 1/ms] [Fetch data: 0/ms]


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/414750.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号