使用儲存在單元格中的 JSON 陣列連線錶行

CROSS APPLY 使你可以使用儲存在列中的 JSON 物件集合來連線表中的行。

假設你有一個 Company 表,其中包含一個包含格式為 JSON 陣列的產品陣列(ProductList 列)的列。OPENJSON 表值函式可以解析這些值並返回產品集。你可以從 Company 表中選擇所有行,使用 OPENJSON 解析 JSON 產品並使用父 Company 行加入生成的結果:

SELECT *
FROM Companies c 
     CROSS APPLY OPENJSON( c.ProductList )
                 WITH ( Id int, Title nvarchar(30), Price money)

對於每一行, ProductList 單元格的值將提供給 OPENJSON 函式,該函式將 JSON 物件轉換為具有 WITH 子句中定義的模式的行。