我想将 t-sql 中的 json 行合并为单个 json 行

I want to combine json rows in t-sql into single json row

我有一个table

id json
1 {"url":"url2"}
2 {"url":"url2"}

我想将这些组合成一个语句,输出为:

{
    "graphs": [
        {
            "id": "1",
            "json": [
                {
                    "url": "url1"
                }
            ]
        },
        {
            "id": "2",
            "json": [
                {
                    "url": "url2" 
                }
            ]
        }
    ]
}

我正在使用 T-SQL,我注意到在 postgres 中有一些东西,但在 tsql 上找不到太多。

任何帮助将不胜感激..

您需要在 json 列上使用 JSON_QUERY 以确保它不会被转义。

SELECT
  id,
  JSON_QUERY('[' + json + ']')
FROM YourTable t
FOR JSON PATH, ROOT('graphs');

db<>fiddle