SQL如何在json中的root前添加一行

vi4fp9gy  于 2022-11-19  发布在  其他
关注(0)|答案(1)|浏览(118)

我有以下数据:

create table samplejson (recordId varchar(10), docNumber varchar(10))
insert into samplejson values ('1', '555555')
insert into samplejson values ('2', '777777')

我希望在json的顶部有一个“dbName”来指定它来自哪个数据库。

{ "dbName": "test123",
  "documents": [
    {
      "json": {
        "RecordId": "1",
        "docNumber": "555555"
      }
    },
    {
      "json": {
        "RecordId": "2",
        "docNumber": "777777"
      }
    }
  ]
}

我可以用下面的方法来纠正我的整个结构:

select recordId [json.RecordId],
docNumber [json.docNumber]
from samplejson
for json path, root('documents')

我正在努力想办法在根之前添加“dbName”元素。有人有主意吗?

r7s23pms

r7s23pms1#

您可以将语句更改为:

SELECT
   DB_NAME() AS dbName,
   ( 
   select recordId [json.RecordId], docNumber [json.docNumber]
   from samplejson
   for json path
   ) AS [documents]
FOR JSON PATH, WITHOUT_ARRAY_WRAPPER

相关问题