JSON_ARRAY (Transact-SQL)
Dotyczy:programu SQL Server
Azure SQL Database
azure SQL Managed Instance
punktu końcowego analizy SQL w usłudze Microsoft Fabric
Warehouse w usłudze Microsoft Fabric
Tworzy tekst tablicy JSON z zera lub większej liczby wyrażeń.
Składnia
JSON_ARRAY ( [ <json_array_value> [,...n] ] [ <json_null_clause> ] )
<json_array_value> ::= value_expression
<json_null_clause> ::=
NULL ON NULL
| ABSENT ON NULL
Argumenty
json_array_value
Jest wyrażeniem definiującym wartość elementu w tablicy JSON.
json_null_clause
Może służyć do kontrolowania zachowania funkcji JSON_OBJECT
, gdy value_expression ma wartość NULL. Opcja NULL ON NULL
konwertuje wartość NULL
SQL na wartość null
JSON podczas generowania wartości elementu w tablicy JSON. Opcja ABSENT ON NULL
pominą element w tablicy JSON, jeśli wartość ma wartość NULL. Ustawieniem domyślnym dla tej opcji jest ABSENT ON NULL
.
Wartość zwracana
Zwraca prawidłowy ciąg tablicy JSON nvarchar(max) typu.
Aby uzyskać więcej informacji o tym, co widzisz w danych wyjściowych funkcji JSON_ARRAY
, zobacz następujące artykuły:
Jak funkcja JSON konwertuje typy danych programu SQL Server na typy danych JSON (SQL Server)
FunkcjaJSON_ARRAY
używa reguł opisanych w tym artykuleFOR JSON
w celu konwertowania typów danych SQL na typy JSON w danych wyjściowych tablicy JSON.How FOR JSON escapes special characters and control characters (SQL Server)
FunkcjaJSON_ARRAY
ucieczki znaków specjalnych i reprezentuje znaki sterujące w danych wyjściowych JSON zgodnie z opisem w tym artykuleFOR JSON
.
Przykłady
Przykład 1
Poniższy przykład zwraca pustą tablicę JSON.
SELECT JSON_ARRAY();
wyników
[]
Przykład 2
Poniższy przykład zwraca tablicę JSON z czterema elementami.
SELECT JSON_ARRAY('a', 1, 'b', 2)
wyników
["a",1,"b",2]
Przykład 3
Poniższy przykład zwraca tablicę JSON z trzema elementami, ponieważ jedna z wartości wejściowych ma wartość NULL. Ponieważ json_null_clause zostanie pominięta, a domyślna dla tej opcji jest NIEOBECNA W wartości NULL, wartość NULL w jednym z danych wejściowych nie jest konwertowana na wartość null JSON.
SELECT JSON_ARRAY('a', 1, 'b', NULL)
wyników
["a",1,"b"]
Przykład 4
Poniższy przykład zwraca tablicę JSON z czterema elementami. Opcja NULL ON NULL jest określona tak, aby każda wartość NULL SQL w danych wejściowych została przekonwertowana na wartość null JSON w tablicy JSON.
SELECT JSON_ARRAY('a', 1, NULL, 2 NULL ON NULL)
wyników
["a",1,null,2]
Przykład 5
Poniższy przykład zwraca tablicę JSON z dwoma elementami. Jeden element zawiera ciąg JSON, a drugi element zawiera obiekt JSON.
SELECT JSON_ARRAY('a', JSON_OBJECT('name':'value', 'type':1))
wyników
["a",{"name":"value","type":1}]
Przykład 6
Poniższy przykład zwraca tablicę JSON z trzema elementami. Jeden element zawiera ciąg JSON, inny element zawiera obiekt JSON & inny element zawiera tablicę JSON.
SELECT JSON_ARRAY('a', JSON_OBJECT('name':'value', 'type':1), JSON_ARRAY(1, null, 2 NULL ON NULL))
wyników
["a",{"name":"value","type":1},[1,null,2]]
Przykład 7
Poniższy przykład zwraca tablicę JSON z danymi wejściowymi określonymi jako zmienne lub wyrażenia SQL.
DECLARE @id_value nvarchar(64) = NEWID();
SELECT JSON_ARRAY(1, @id_value, (SELECT @@SPID));
wyników
[1,"4BEA4F9F-D169-414F-AF99-9270FDB2EA62",55]
Przykład 8
Poniższy przykład zwraca tablicę JSON na wiersz w zapytaniu.
SELECT s.session_id, JSON_ARRAY(s.host_name, s.program_name, s.client_interface_name)
FROM sys.dm_exec_sessions AS s
WHERE s.is_user_process = 1;
wyników
session_id | Informacji |
---|---|
52 | ["WIN16-VM","Microsoft SQL Server Management Studio - Query",".Net SqlClient Data Provider"] |
55 | ["WIN16-VM","Microsoft SQL Server Management Studio - Query",".Net SqlClient Data Provider"] |
56 | ["WIN19-VM","SQLServerCEIP",".Net SqlClient Data Provider"] |