OPENJSON 交叉应用 NULL 值 (SQL)

OPENJSON cross apply with NULL values (TSQL)

我有一系列 OPENJSON 语句,在存储过程的最后一步,我从倒数第二个 table 的最后一列中解析了一些 JSON ].最后一列几乎总是空的,但它是由 JSON 对象填充的,因此它偶尔会有一些信息。我正在尝试将 Table 1 转换为 FinalTable,如下所示:

Table 1
Col1  Col2  Col3  Col4  Col5  Col6  Col7  Adjustments
123   592   593   data  rand  fake  data  []
345   035   021   ll    need  food  now   [ { "id": 999, "adj1": 123 }]

FinalTable
Col1  Col2  Col3  Col4  Col5  Col6  Col7  AdjID  Adj1  Adj2  Adj3
123   592   593   data  rand  fake  data  NULL   NULL  NULL  NULL
345   035   021   ll    need  food  now   999    123   NULL  NULL

这是我的代码:

INSERT into FinalTable ([Col1], [Col2], [Col3], [Col4], [Col5], [Col6], [Col7], [AdjID], [Adj1], [Adj2], [Adj3]
) 
SELECT [Col1], [Col2], [Col3], [Col4], [Col5], [Col6], [Col7], [AdjID], [Adj1], [Adj2], [Adj3]

FROM StageStep2 cross apply
OPENJSON (Adjustments)
WITH (
         AdjID         nvarchar(200)     '$.id',
         [Adj1]        nvarchar(200)     '$.adj1',
         [Adj2]        nvarchar(200)     '$.adj2',
         [Adj3]        nvarchar(200)     '$.adj3')

在 StageStep2 中,[调整] 几乎总是包含显示为 [] 的空数组,因为原始 JSON 脚本中没有该对象的数据。

看起来因为我在最后一列中没有数据,OPENJSON 没有解析任何东西并且总是返回 '0 rows affected' 基本上它只是说:“不,伙计,这里没有数据,所以我不解析 shib”

如果该列为空,我该怎么做才能让它仍然包含 NULL 值?

使用 OUTER APPLY 而不是 CROSS APPLY 解决了这个问题