Merhaba,
Bu yazımızda son yılların popüler veri formatı olan JSON formatını OPENJSON komutunu kullanarak nasıl sorgulayacağımızdan basitçe bahsediyor olacağım.
Elimizde şu şekilde bir JSON verisi var.
{ "firstName": "Rack", "lastName": "Jackon", "gender": "man", "age": 24, "address": { "streetAddress": "126", "city": "San Jone", "state": "CA", "postalCode": "394221" }, "phoneNumbers": { "type": "home", "number": "7383627627" } }'
Bu Json’ı SQL Server ile aşağıdaki gibi sorgulayabiliriz.
DECLARE @JSON AS NVARCHAR(MAX)='{ "firstName": "Rack", "lastName": "Jackon", "gender": "man", "age": 24, "address": { "streetAddress": "126", "city": "San Jone", "state": "CA", "postalCode": "394221" }, "phoneNumbers": { "type": "home", "number": "7383627627" } }' SELECT * FROM OPENJSON ( @json ) WITH ( firstname varchar(100) '$.firstName' , lastName varchar(100) '$.lastName' , age int '$.age' , gender varchar(100) '$.gender' , streetAddress varchar(100) '$.address.streetAddress' , city varchar(100) '$.address.city' , postalCode varchar(100) '$.address.postalCode' , state varchar(100) '$.address.state' , address varchar(100) '$.address.streetAddress' , phoneNumbers varchar(100) '$.phoneNumbers.type' )
Ve bu da elde ettiğimiz sonuç.

Şimdi veri sayısını biraz çoğaltalım.
DECLARE @JSON AS NVARCHAR(MAX)=' [ { "firstName": "Rack", "lastName": "Jackon", "gender": "man", "age": 24, "address": { "streetAddress": "126", "city": "San Jone", "state": "CA", "postalCode": "394221" }, "phoneNumbers": { "type": "home", "number": "7383627627" } }, { "firstName": "Marrie", "lastName": "Coldman", "gender": "woman", "age": 39, "address": { "streetAddress": "156", "city": "Newyork", "state": "NY", "postalCode": "10019" }, "phoneNumbers": { "type": "home", "number": "555689998" } } ]' SELECT * FROM OPENJSON ( @json ) WITH ( firstname varchar(100) '$.firstName' , lastName varchar(100) '$.lastName' , age int '$.age' , gender varchar(100) '$.gender' , streetAddress varchar(100) '$.address.streetAddress' , city varchar(100) '$.address.city' , postalCode varchar(100) '$.address.postalCode' , state varchar(100) '$.address.state' , address varchar(100) '$.address.streetAddress' , phoneNumbers varchar(100) '$.phoneNumbers.type' )

İlerleyen zamanlarda konu ile alakalı daha detaylı yazılar gelecek inşallah.