具有内部 JSON 集合的 JOIN 表

如果你将子表格式化为 JSON 集合并存储在行中作为 JSON 列,则可以解压缩此集合,将其转换为表并将其与父行连接。你应该使用 CROSS APPLY 而不是标准 JOIN 运算符。在此示例中,产品部件被格式化为数据列中的 JSON 对象集合并存储在数据列中:

select ProductID, Name, Size, Price, Quantity, PartName, Code
from Product
    CROSS APPLY OPENJSON(Data, '$.Parts') WITH (PartName varchar(20), Code varchar(5))

查询结果等同于 Product 和 Part 表之间的连接。