postgresql – 使用row_to_json创建JSON时将名称设置为属性

postgresql – 使用row_to_json创建JSON时将名称设置为属性,第1张

概述当仅对某些列使用row_to_json函数时,是否可以重命名默认的f1,f2,f3 …名称? 我可以 row_to_json(客户) 回国 { “id_customer”:2 “如first_name”: “BLA”, “姓氏”: “second_bla”} 但如果我只想要没有id_customer的名字,我必须使用 row_to_json(row(first_name,last_name)) 然 当仅对某些列使用row_to_Json函数时,是否可以重命名默认的f1,f2,f3 …名称?

我可以

row_to_Json(客户)

回国

{ “ID_customer”:2 “如first_name”: “BLA”,“姓氏”: “second_bla”}

但如果我只想要没有ID_customer的名字,我必须使用

row_to_Json(row(first_name,last_name))

然后我明白了

{ “F1”: “BLA”,“F2”: “second_bla”}

我希望使用默认列名或我自己的名称来获得此结果.我知道我可以创建自己的复合类型并使用

row_to_Json(row(first_name,last_name)):: my_custom_type

但是如果不创建该类型,是不是可以在查询中正确执行?

公用表表达式允许您明确指定别名,不仅适用于CTE,还适用于其列.
WITH data(col1,col2,cola,colb) AS (  VALUES (1,2,'fred','bob'))SELECT row_to_Json(data) FROM data;

这与@dezso的例子不同,因为它不对SELECT列表中的每个col使用col AS别名;它将CTE表别名中的列名称别名.

我使用VALUES表达式作为子查询,但你可以随意使用SELECT;关键是,无论在子查询中提供或假设的列别名,都可以通过指定列名列表在CTE定义中覆盖.

您可以在子查询中执行相同的 *** 作,而不是使用AS别名:

SELECT row_to_Json(data) FROM (VALUES (1,'bob')) data(col1,colb);

这不能直接与ROW表达式一起使用;你只能将ROW转换为具体类型,你不能为它做别名.

regress=> SELECT ROW(1,'bob') AS x(a,b,c,d);ERROR:  Syntax error at or near "("liNE 1: SELECT ROW(1,d);
总结

以上是内存溢出为你收集整理的postgresql – 使用row_to_json创建JSON时将名称设置为属性全部内容,希望文章能够帮你解决postgresql – 使用row_to_json创建JSON时将名称设置为属性所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1168283.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-01
下一篇 2022-06-01

发表评论

登录后才能评论

评论列表(0条)

保存