Udostępnij za pomocą


JSON_ARRAY (Transact-SQL)

Dotyczy:programu SQL ServerAzure SQL Databaseazure SQL Managed Instancepunktu końcowego analizy SQL w usłudze Microsoft FabricWarehouse 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> ] [ RETURNING json ] )

<json_array_value> ::= value_expression

<json_null_clause> ::=
      NULL ON NULL
    | ABSENT ON NULL

Argumenty

json_array_value

Wyrażenie definiujące wartość elementu w tablicy JSON.

json_null_clause

Może służyć do kontrolowania zachowania funkcji JSON_OBJECT, gdy value_expression jest 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ść jest NULL. Ustawieniem domyślnym dla tej opcji jest ABSENT ON NULL.

Wartość zwracana

Zwraca prawidłowy ciąg tablicy JSON nvarchar(max) typu. RETURNING json Jeśli opcja jest dołączona, tablica JSON jest zwracana jako typ json.

Aby uzyskać więcej informacji o tym, co widzisz w danych wyjściowych funkcji JSON_ARRAY, zobacz następujące artykuły:

Article Description
Jak format JSON konwertuje typy danych programu SQL Server na typy danych JSON Funkcja JSON_ARRAY używa reguł opisanych w tym artykule FOR JSON w celu konwertowania typów danych SQL na typy JSON w danych wyjściowych tablicy JSON.
Jak JSON ucieka znaki specjalne i sterujące Funkcja JSON_ARRAY ucieczki znaków specjalnych i reprezentuje znaki sterujące w danych wyjściowych JSON zgodnie z opisem w tym artykule FOR 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 jest NULL. Ponieważ json_null_clause zostanie pominięta, a wartością domyślną dla tej opcji jest ABSENT ON NULL, NULL wartość 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, a 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 AS 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"]

Przykład 9

Poniższy przykład zwraca tablicę JSON jako typ json .

SELECT JSON_ARRAY(1 RETURNING JSON);

wyników

[1]