在 T-SQL 查询中获取表格以及 json 列
Get tabular as well as json column in a T-SQL query
在 SQL Server 2016 中,FOR JSON PATH
允许将整个结果集 return 编辑为 JSON 字符串。有没有办法获得一些列为 JSON 的常规记录集?
例如对于产品(主)和订单(详细信息)table 连接在一起时,我希望查询 return 来自 Products
table 的结果集作为常规表格列,但是来自 Orders
table return 的每个产品的那些多行被编为 JSON 列。
直到现在,我一直在使用传递产品 ID 的用户定义的标量函数来执行此操作,并且它 returned JSON 格式化订单数据,但我希望是否有一种更简洁的方式。
是的。类似于:
select SalesOrderId, OrderDate, TotalDue, d.Details
from SalesLT.SalesOrderHeader h
cross apply
(
select *
from SalesLT.SalesOrderDetail d
where d.SalesOrderId = h.SalesOrderId
for json path
) d(details)
在 SQL Server 2016 中,FOR JSON PATH
允许将整个结果集 return 编辑为 JSON 字符串。有没有办法获得一些列为 JSON 的常规记录集?
例如对于产品(主)和订单(详细信息)table 连接在一起时,我希望查询 return 来自 Products
table 的结果集作为常规表格列,但是来自 Orders
table return 的每个产品的那些多行被编为 JSON 列。
直到现在,我一直在使用传递产品 ID 的用户定义的标量函数来执行此操作,并且它 returned JSON 格式化订单数据,但我希望是否有一种更简洁的方式。
是的。类似于:
select SalesOrderId, OrderDate, TotalDue, d.Details
from SalesLT.SalesOrderHeader h
cross apply
(
select *
from SalesLT.SalesOrderDetail d
where d.SalesOrderId = h.SalesOrderId
for json path
) d(details)