加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

将表名前置到SQL中功效齐集的每一列? (Postgres详细)

发布时间:2021-04-01 07:30:48 所属栏目:编程 来源:网络整理
导读:怎样获取功效齐集每列的标签,以便在其表中添加名称? 我但愿在单个表和毗连长举办查询时产生这种环境. 例: SELECT first_name,last_name FROM person; 我但愿功效如下: | person.first_name | person.last_name | |-------------------|------------------|

怎样获取功效齐集每列的标签,以便在其表中添加名称?

我但愿在单个表和毗连长举办查询时产生这种环境.

例:

SELECT first_name,last_name FROM person;

我但愿功效如下:

| person.first_name | person.last_name |
 |-------------------|------------------|
 | Wendy             | Melvoin          |
 | Lisa              | Coleman          |

我可以行使“AS”为每列界说别名,但这将是乏味的.我但愿这会自动产生.

SELECT first_name AS person.first_name,last_name AS person.last_name FROM person;

我的题目的缘故起因是我行使的数据库驱动措施不提供元数据,关照我功效集获取其数据的数据库列.我正在实行编写通用代码来处理赏罚功效集.

我想知道如安在SQL中执行此操纵,或至少在Postgres中详细执行此操纵.

SQLite有这样一个成果,固然我看到它此刻被莫名其妙地弃用了. SQLite有两个pragma配置:full_column_names& short_column_names.

办理要领

我知道这个题目有点陈旧,但大概有人会绊倒谜底,这会辅佐他们.

正在探求你正在探求的对象的正确要领是建设和行使View.是的,将全部这些新列名称作为别名键入一次会有点单调乏味,可是假如这里有许多列,那么您可以行使它来操作PostgreSQL元数据来写出视图的文本:

select 'CREATE OR REPLACE VIEW people AS SELECT ' || 
(select string_agg(column_name || ' AS person_' || column_name,',')
from information_schema.columns
where 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]

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读