3
一連のOPENJSONステートメントがあります。ストアドプロシージャの最後のステップで、2番目から最後のテーブルの最後の列からJSONを解析します。最後の列はほとんど常に空ですが、JSONオブジェクトからデータが移入されるため、時には情報があることがあります。私はここに示されているようFinalTableに表1に変換しようとしています:OPENJSON NULL(TSQL)を使用したクロス適用
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
ここに私のコードです:にデータがないのでStageStep2で
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')
、[調整]は、ほとんどの場合、[]が含まそのオブジェクトの元のJSONスクリプト。
私が最終列内のデータがないので、OPENJSONが何かを解析し、常には、基本的にはそれだけで言っている「影響を受ける0の行を」 を返していないように見えます:「私はでないので、いや男は、ここではデータがありません
カラムが空の場合でもNULL値を保持するにはどうすればよいですか?