gpt4 book ai didi

json - 将查询结果转换为 hstore 时保留列名

转载 作者:行者123 更新时间:2023-11-29 12:13:30 25 4
gpt4 key购买 nike

例如,我有一个表 users,其中包含 user_iduser_nameuser_phone 列。

如果我这样做:

select hstore(u) from users u

结果是:

"user_id" => "1", "user_name" => "McEnroe", "user_phone" => "xxx"

如果我这样做:

select hstore(u) from (select user_id, user_name, user_phone from users) u

结果是:

"f1" => "1", "f2" => "McEnroe", "f3" => "xxx"

我忘记了列的名称。
如何使用第二个示例并获得正确的列名?

最佳答案

这是一个在 Postgres 9.2 中修复的缺点。
我引用 release notes for 9.2 here :

E.5.3.3. Queries

(...)

  • Retain column names at run time for row expressions (Andrew Dunstan, Tom Lane)

    This change allows better results when a row value is converted to hstore or json type: the fields of the resulting value will now have the expected names.

此外,不要使用 user 作为表名,即使它只是一个演示。这是一个reserved word在每个 SQL 标准和 Postgres 中,并且不能在没有双引号的情况下用作表名。我冒昧地在Q中修复了测试用例。

关于json - 将查询结果转换为 hstore 时保留列名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18406220/

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