将表名前置到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有两个pragma设置:full_column_names& short_column_names。
没有找到相关结果
已邀请:
2 个回复
告耸
运行此产生:
然后你可以复制并执行结果并瞧瞧:
钾涎净介
(Daryl的想法),请使用函数或带
的
命令:
这会立即执行以下形式的命令:
使用“_”而不是“。”连接合法的列名称会更少麻烦。但是你需要为需要双引号(并防止可能的SQL注入)的非标准名称做好准备。 您可以选择提供模式限定的表名(
)。如果模式名称超出当前的
,则会自动以列名称作为前缀。 重复使用时,将其包装到plpgsql函数中,并使表名为
参数。此处对所有文本到代码的转换进行了清理,以防止SQL注入。这里有更多信息的示例: 表名作为PostgreSQL函数参数 你可以在Postgres 9.4+中使用新的
: 如何检查给定模式中是否存在表