Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Si applica a: SQL Server 2016 (13.x) e versioni
successive del database
SQL di Azure Istanza
gestita di SQL diAzure Azure Synapse Analytics
in Microsoft Fabric
Utilizzare OPENJSON con lo schema predefinito per restituire una tabella con una riga per ogni proprietà dell'oggetto o per ogni elemento della matrice.
Ecco alcuni esempi che usano OPENJSON con lo schema predefinito. Per altre informazioni ed esempi, vedere OPENJSON (Transact-SQL).
Esempio: restituire ogni proprietà di un oggetto
Query
SELECT *
FROM OPENJSON('{"name":"John","surname":"Doe","age":45}')
Results
| Key | Value |
|---|---|
| name | John |
| surname | Doe |
| age | 45 |
Esempio: restituire ogni elemento di una matrice
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 |
Esempio: convertire JSON in una tabella temporanea
La query seguente restituisce tutte le proprietà dell'oggetto info .
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 | { "città":"Bristol", "contea":"Avon", "paese":"Gran Bretagna" } | 5 |
| tags | [ "Sport", "Pallanuoto" ] | 4 |
Esempio: combinare dati relazionali e dati JSON
Nell'esempio seguente, la tabella SalesOrderHeader include una colonna di testo SalesReason che contiene una matrice di SalesOrderReasons in formato JSON. Gli oggetti SalesOrderReasons contengono proprietà come "Produttore" e "Qualità". Nell'esempio viene creato un report che unisce ogni riga dell'ordine di vendita ai motivi di vendita correlati espandendo la matrice JSON dei motivi di vendita come se questi fossero archiviati in una tabella figlio separata.
SELECT SalesOrderID,OrderDate,value AS Reason
FROM Sales.SalesOrderHeader
CROSS APPLY OPENJSON(SalesReasons)
In questo esempio, OPENJSON restituisce una tabella dei motivi di vendita in cui questi vengono visualizzati come colonna valore. L'operatore CROSS APPLY unisce ogni riga dell'ordine di vendita alle righe restituite dalla funzione con valori di tabella OPENJSON.
Altre informazioni su JSON nel motore di database SQL
Video di Microsoft
Per un'introduzione visiva al supporto JSON predefinito, vedere i video seguenti:
- JSON as a bridge between NoSQL and relational worlds (JSON come ponte tra NoSQL e gli ambienti relazionali)