Veri mühendisliği
JSON, APPLY ve ilişkisel dönüşüm
Esnek veri ile sorgulanabilir veri arasındaki köprü.
Kavramı anlayalım
SQL Server 2019’da JSON çoğunlukla nvarchar içinde tutulur. ISJSON biçimi doğrular; JSON_VALUE scalar değeri, JSON_QUERY nesne veya diziyi alır. OPENJSON diziyi veya nesneyi satırlara açar; compatibility level en az 130 olmalıdır. Alan tipi ve eksik değer davranışını açık WITH şemasıyla tanımla.
CROSS APPLY sol satıra bağlı tablo ifadesini değerlendirir ve sonuçsuz satırı dışarıda bırakır. OUTER APPLY sonuçsuz sol satırı NULL’larla korur. TOP 1 kullanırken deterministik ORDER BY ekle. JSON esnek diye her ilişkisel veriyi bir sütuna gömmek iyi tasarım değildir: bütünlük, indeksleme ve join gereksinimlerini düşün. FOR JSON çıktısı API sözleşmesinin doğrulanmasının yerine geçmez.
JSON entegrasyonu ve satıra bağlı alt sorgular için.
CROSS APPLY ile OUTER APPLY’nin sonuçsuz satır davranışını karıştırmak.
Aynı konu. Üç farklı derinlik.
SELECT JSON_VALUE(N'{"name":"Ada"}', '$.name') AS Name;Scalar alan alınır.
Bu sayfa SQL çalıştırmaz. Örnekleri indirilebilir SqlStudioLab veritabanında, SSMS’de uygula. Geçici tablo örneklerini yeniden çalıştırırken yalnız ilgili #tabloyu temizle. VIEW, procedure ve function örnekleri lab’da kalıcı nesne oluşturur; üretim bağlantısı kullanma.
Önce kendin dene.
Siparişleri JSON dizisi olarak döndür.
Çözümü ve açıklamasını göster
SELECT OrderId, CustomerId, Status FROM lab.SalesOrder ORDER BY OrderId FOR JSON PATH;Sonuç tek JSON metnidir; normal satır görünümünden farklıdır.