如何获得结果集中每列的标签,以便在其表中添加名称?将表名添加到SQL中结果集中的每个列? (特别是Postgres)
我希望这发生在单个表上的查询以及连接。
例子:
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有两个附注设置:full_column_names & short_column_names。
我不认为这是可能。 – 2011-03-03 11:26:04
看到SQLAlchemy如何“手动”执行所有这些操作,我也怀疑这可以完成。 – 2011-03-03 12:59:11
这是不可能的一个原因是没有什么可以将结果列魔术般地绑定到表格上。列中的输出可能是由0个或更多列(以及0个或更多个表)组成的表达式。输出的默认列名通常是从列名借用的,但它也可以来自函数名(例如默认情况下'SELECT min(x)'返回名为'min'的列),并且可能是' ?柱?'当没有违约时。我认为,使用'AS'的(不幸的)乏味的建议是唯一的答案,因为它不会对不同行为进行黑客入侵和重新编译Postgres。 – Flimzy 2011-06-15 09:13:05