1

2 つの浮動小数点数配列で構成されるこの JSON オブジェクトを SQL データベース テーブルに配置するにはどうすればよいでしょうか。

{
    "Latitudes": [
    53.665084,
    53.665084,
    53.665184,
    53.665284
    ],
    "Longitudes":[
    17.342853,
    17.342953,
    17.343053,
    17.343153
    ]
}

テーブルには、CoordID、緯度、経度の 3 つの列があります (CoordID は自動インクリメントされます)。これらのテーブルの各ペア( [0]、[0] / [1][1] など)をテーブルの1行として配置したいと思います。したがって、このオブジェクトでは、4 行になります。

これは、期待どおりに機能しないコードです-「経度」列と「緯度」列の代わりにnullを配置するだけで、1行しか作成しません...(4行ではなく):

declare @json NVARCHAR(MAX);
SET @json=
'{
    "Latitudes": [
    53.665084,
    53.665084,
    53.665184,
    53.665284
    ],
    "Longitudes":[
    17.342853,
    17.342953,
    17.343053,
    17.343153
    ]
}'

insert into dbo.Coords(
[Latitude],[Longitude])
select Latitude, Longitude from OPENJSON(@json)
WITH(
Latitude FLOAT '$."Latitudes"',
Longitude FLOAT '$."Longitudes"')

PS OPENJSON() 関数は、バージョン 2016 の SQL Server または Azure SQL データベースで動作します。誰かが SSMS 2014 でこれを実行しようとする場合に備えて、つまり ;-)

4

2 に答える 2