我将数据库从 MS SQL Server 迁移到 PostgreSQL。
SELECT
DTL_CODE
,DTL_NAME_ENG
FROM DATA_LIST
FOR JSON AUTO
结果:
[{"DTL_CODE":"F","DTL_NAME_ENG":"Female"},{"DTL_CODE":"M","DTL_NAME_ENG":"Male"}]
还有
SELECT
*
FROM OPENJSON('[{"DTL_CODE":"F","DTL_NAME_ENG":"Female"},{"DTL_CODE":"M","DTL_NAME_ENG":"Male"}]')
WITH (
DTL_CODE varchar(25)
,DTL_NAME_ENG varchar(255)
)
结果:
如何在 PostgreSQL 中执行操作?
我刚刚启动 PostgreSQL,我尝试找到解决方案,但结果为 404。
最佳答案
使用json_array_elements
select j->>'DTL_CODE' as dtl_code,
j->>'DTL_NAME_ENG' as dtl_name_eng
from json_array_elements(
'[{"DTL_CODE":"F","DTL_NAME_ENG":"Female"},
{"DTL_CODE":"M","DTL_NAME_ENG":"Male"}]') as j;
要执行相反的操作,请使用 json_agg
和 json_build_object
select json_agg(json_build_object('DTL_CODE',
dtl_code,'DTL_NAME_ENG' , dtl_name_eng))
from t
关于json - 如何在 MS SQL Server 中执行像 FOR JSON、OPENJSON 这样的 PostgreSQL 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56982915/