Aracılığıyla paylaş


OpenJSON'i Varsayılan Şemayla Kullanma

Şunlar için geçerlidir: SQL Server 2016 (13.x) ve sonraki sürümleri Microsoft Fabric'te Azure SQL VeritabanıAzure SQL Yönetilen ÖrneğiAzure Synapse AnalyticsSQL veritabanı

Nesnenin her özelliği için veya dizideki her öğe için bir satır içeren bir tablo döndürmek için varsayılan şemayla kullanın OPENJSON .

Burada, varsayılan şema ile kullanılan OPENJSON bazı örnekler verilmiştir. Daha fazla bilgi ve daha fazla örnek için bkz. OPENJSON (Transact-SQL).

Örnek - Bir nesnenin her özelliğini döndürme

Query

SELECT *
FROM OPENJSON('{"name":"John","surname":"Doe","age":45}') 

Results

Key Value
name John
surname Doe
age 45

Örnek - Bir dizinin her öğesini döndürme

Query

SELECT [key],value
FROM OPENJSON('["en-GB", "en-UK","de-AT","es-AR","sr-Cyrl"]') 

Results

Key Value
0 en-GB
1 en-UK
2 de-AT
3 es-AR
4 sr-Cyrl

Örnek - JSON'ı geçici tabloya dönüştürme

Aşağıdaki sorgu, bilgi nesnesinin tüm özelliklerini döndürür.

DECLARE @json NVARCHAR(MAX)

SET @json=N'{  
     "info":{    
       "type":1,  
       "address":{    
         "town":"Bristol",  
         "county":"Avon",  
         "country":"Great Britain"  
       },  
       "tags":["Sport", "Water polo"]  
    },  
    "type":"Basic"  
 }'

SELECT *
FROM OPENJSON(@json,N'lax $.info')

Results

Key Value Type
type 1 0
address { "town":"Bristol", "county":"Avon", "country":"Büyük Britanya" } 5
tags [ "Spor", "Sutopu" ] 4

Örnek - İlişkisel verileri ve JSON verilerini birleştirme

Aşağıdaki örnekte, SalesOrderHeader tablosunda JSON biçiminde salesOrderReasons dizisi içeren bir SalesReason metin sütunu vardır. SalesOrderReasons nesneleri "Manufacturer" ve "Quality" gibi özellikler içerir. Örnek, JSON satış nedenleri dizisini ayrı bir alt tabloda depolanmış gibi genişleterek her satış siparişi satırını ilgili satış nedenleriyle birleştiren bir rapor oluşturur.

SELECT SalesOrderID,OrderDate,value AS Reason
FROM Sales.SalesOrderHeader
CROSS APPLY OPENJSON(SalesReasons)

Bu örnekte OPENJSON, nedenlerin değer sütunu olarak göründüğü bir satış nedenleri tablosu döndürür. CROSS APPLY işleci, her satış siparişi satırını OPENJSON tablo-değer işlevi tarafından döndürülen satırlara birleştirir.

SQL Veritabanı Altyapısı'nda JSON hakkında daha fazla bilgi edinin

Microsoft videoları

Yerleşik JSON desteğine görsel bir giriş için aşağıdaki videolara bakın:

  • NoSQL ile ilişkisel dünyalar arasında bir köprü olarak JSON