用于在t-sql中查询json并返回整个结果集为json的sql server json功能非常棒,但我正在寻找一种“混合模式”方法,我想为此结果指定一组列设置,但还希望将整个行都转换为json对象/列。
类似这样的东西:
select ProductId, Name, Category, ProductJson = (* for json auto)
from Product
我该怎么做?
答案 0 :(得分:1)
一种方法是相关子查询:
SELECT ProductId, Name, Category,
[JSON] = (SELECT * FROM dbo.Product WHERE ProductID = p.ProductID FOR JSON AUTO)
FROM dbo.Product AS p;
或CROSS APPLY
:
SELECT p.ProductId, p.Name, p.Category, j.son
FROM dbo.Product AS p
CROSS APPLY
(SELECT * FROM dbo.Product WHERE ProductID = p.ProductID FOR JSON AUTO) AS j(son);