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 でこれを実行しようとする場合に備えて、つまり ;-)