Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy: SQL Server 2016 (13.x) i nowsze wersje
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics (tylko bezserwerowa pula SQL)
punktu końcowego analizy SQL w usłudze Microsoft Fabric
Warehouse w usłudze Microsoft Fabric
Użyj OPENJSON
z jawnym schematem, aby zwrócić tabelę sformatowaną zgodnie z warunkami określonymi w klauzuli WITH.
Poniżej przedstawiono kilka przykładów, które używają OPENJSON
z jawnym schematem. Aby uzyskać więcej informacji i więcej przykładów, zobacz OPENJSON (Transact-SQL).
Przykład — użyj klauzuli WITH, aby sformatować dane wyjściowe
Poniższe zapytanie zwraca wyniki przedstawione w poniższej tabeli. Zwróć uwagę, że klauzula AS JSON
powoduje zwracanie wartości jako obiektów JSON zamiast wartości skalarnych w col5
i array_element
.
DECLARE @json NVARCHAR(MAX) =
N'{"someObject":
{"someArray":
[
{"k1": 11, "k2": null, "k3": "text"},
{"k1": 21, "k2": "text2", "k4": { "data": "text4" }},
{"k1": 31, "k2": 32},
{"k1": 41, "k2": null, "k4": { "data": false }}
]
}
}'
SELECT * FROM
OPENJSON(@json, N'lax $.someObject.someArray')
WITH ( k1 int,
k2 varchar(100),
col3 varchar(6) N'$.k3',
col4 varchar(10) N'lax $.k4.data',
col5 nvarchar(MAX) N'lax $.k4' AS JSON,
array_element nvarchar(MAX) N'$' AS JSON
)
wyniki
k1 | k2 | col3 | kolumna 4 | kolumna5 | array_element |
---|---|---|---|---|---|
11 | null | "tekst" | null | null | {"k1": 11, "k2": null, "k3": "text"} |
dwadzieścia jeden | "text2" | null | "text4" | { "data": "text4" } | {"k1": true, "k2": "text2", "k4": { "data": "text4" } } |
31 | "32" | null | null | null | {"k1": 31, "k2": 32 } |
41 | null | null | fałszywy | { "data": false } | {"k1": 41, "k2": null, "k4": { "data": false } } |
Przykład — ładowanie kodu JSON do tabeli programu SQL Server.
Poniższy przykład ładuje cały obiekt JSON do tabeli programu SQL Server.
DECLARE @json NVARCHAR(MAX) = '{
"id" : 2,
"firstName": "John",
"lastName": "Smith",
"isAlive": true,
"age": 25,
"dateOfBirth": "2015-03-25T12:00:00",
"spouse": null
}';
INSERT INTO Person
SELECT *
FROM OPENJSON(@json)
WITH (id int,
firstName nvarchar(50), lastName nvarchar(50),
isAlive bit, age int,
dateOfBirth datetime2, spouse nvarchar(50))
Dowiedz się więcej o JSON w silniku bazy danych SQL
Aby zapoznać się z wizualnym wprowadzeniem do wbudowanej obsługi kodu JSON w programie SQL Server i usłudze Azure SQL Database, zobacz następujące wideo: