COMPUTER ENGINEER

Örneklere git
Blog
SQL Server / T-SQL6 dk çalışma
57/ 65

Veri mühendisliği

JSON, APPLY ve ilişkisel dönüşüm

Esnek veri ile sorgulanabilir veri arasındaki köprü.

AnlaÖrneği inceleKendin uygula

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.

NERESİNDE KULLANIRSIN?

JSON entegrasyonu ve satıra bağlı alt sorgular için.

SIK YAPILAN HATA

CROSS APPLY ile OUTER APPLY’nin sonuçsuz satır davranışını karıştırmak.

01 / UYGULAMA

Aynı konu. Üç farklı derinlik.

T-SQL / SQL Server 2019+
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.

02 / SIRA SENDE

Önce kendin dene.

Siparişleri JSON dizisi olarak döndür.

Çözümü ve açıklamasını göster
Açıklamalı çözüm
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.