gpt4 book ai didi

sql - 查询中的列名

转载 作者:行者123 更新时间:2023-11-29 12:21:19 24 4
gpt4 key购买 nike

我正在尝试进行查询以从 postgresql 中的查询结果中返回列名列表

例如

SELECT column_name 
FROM (
SELECT table1.*
FROM table1
LEFT JOIN table2
ON table1.id = table2.tbl1_id
)

这可能吗

我不想要单个表中的列!!!所以请不要告诉我去做

SELECT column_name
FROM information_schema.columns
WHERE table_name = 'table1'

最佳答案

我不知道您为什么需要这样做,但可以使用 9.3 中引入的一些 JSON 函数。

SELECT json_object_keys(row_to_json(t)) FROM
(SELECT * FROM table1
LEFT JOIN table2 ON table1.id = table2.tbl1_id LIMIT 1) t;

这将为您提供为单行返回的每一列的名称。如果没有 LIMIT,您将对返回的每一行重复列。如果您还想查看返回的值,您可以变得更复杂:

WITH t as
(SELECT * FROM table1
LEFT JOIN table2 ON table1.id = table2.tbl1_id LIMIT 1)
SELECT json_data.key, json_data.value
FROM t, json_each_text(row_to_json(t)) AS json_data;

这两个查询都将返回所有列,即使它们的名称相同。如果你想要的只是一个唯一列名的列表,你可以使用 hstore:

CREATE EXTENSION hstore; --Create the extension if you need it.

SELECT akeys(hstore(t)) as array_of_columns
FROM
(SELECT * FROM table1
LEFT JOIN table2 ON table1.id = table2.tbl1id LIMIT 1) t;

关于sql - 查询中的列名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22074669/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com