Sdílet prostřednictvím


JSON_ARRAY (Transact-SQL)

platí pro:SQL ServerAzure SQL Databasekoncový bod služby Azure SQL Managed InstanceSQL Analytics ve službě Microsoft FabricWarehouse v Microsoft Fabric

Vytvoří text pole JSON z nulových nebo více výrazů.

Syntax

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

Výraz, který definuje hodnotu elementu v poli JSON.

json_null_clause

Lze použít k řízení chování funkce JSON_OBJECT při value_expression je NULL. Možnost NULL ON NULL při generování hodnoty elementu v poli JSON převede hodnotu NULL SQL na hodnotu JSON NULL. Možnost ABSENT ON NULL vynechá prvek v poli JSON, pokud je hodnota NULL. Výchozí nastavení této možnosti je ABSENT ON NULL.

Návratová hodnota

Vrátí platný řetězec pole JSON nvarchar(max) typu. Pokud je tato RETURNING json možnost zahrnutá, vrátí se pole JSON jako typ JSON .

Další informace o tom, co vidíte ve výstupu funkce JSON_ARRAY, najdete v následujících článcích:

Article Description
Jak FOR JSON převádí datové typy SQL Serveru na datové typy JSON Funkce JSON_ARRAY používá pravidla popsaná v tomto článku FOR JSON k převodu datových typů SQL na typy JSON ve výstupu pole JSON.
Jak FOR JSON escapuje speciální znaky a řídicí znaky Funkce JSON_ARRAY řídicími znaky a představuje řídicí znaky ve výstupu JSON, jak je popsáno v tomto FOR JSON článku.

Příklady

Příklad 1

Následující příklad vrátí prázdné pole JSON.

SELECT JSON_ARRAY();

výsledek

[]

Příklad 2

Následující příklad vrátí pole JSON se čtyřmi prvky.

SELECT JSON_ARRAY('a', 1, 'b', 2);

výsledek

["a",1,"b",2]

Příklad 3

Následující příklad vrátí pole JSON se třemi prvky, protože jedna ze vstupních hodnot je NULL. Vzhledem k tomu, json_null_clause je vynechán a výchozí hodnota pro tuto možnost je ABSENT ON NULL, NULL hodnota v jednom ze vstupů není převedena na hodnotu NULL JSON.

SELECT JSON_ARRAY('a', 1, 'b', NULL);

výsledek

["a",1,"b"]

Příklad 4

Následující příklad vrátí pole JSON se čtyřmi prvky. Možnost NULL ON NULL je zadána tak, aby všechny hodnoty sql NULL ve vstupu byly převedeny na hodnotu JSON null v poli JSON.

SELECT JSON_ARRAY('a', 1, NULL, 2 NULL ON NULL);

výsledek

["a",1,null,2]

Příklad 5

Následující příklad vrátí pole JSON se dvěma prvky. Jeden prvek obsahuje řetězec JSON a druhý prvek obsahuje objekt JSON.

SELECT JSON_ARRAY('a', JSON_OBJECT('name':'value', 'type':1));

výsledek

["a",{"name":"value","type":1}]

Příklad 6

Následující příklad vrátí pole JSON se třemi prvky. Jeden prvek obsahuje řetězec JSON, druhý prvek obsahuje objekt JSON a další prvek obsahuje pole JSON.

SELECT JSON_ARRAY('a', JSON_OBJECT('name':'value', 'type':1), JSON_ARRAY(1, NULL, 2 NULL ON NULL));

výsledek

["a",{"name":"value","type":1},[1,null,2]]

Příklad 7

Následující příklad vrátí pole JSON se vstupy zadanými jako proměnné nebo výrazy SQL.

DECLARE @id_value AS NVARCHAR (64) = NEWID();
SELECT JSON_ARRAY(1, @id_value, (SELECT @@SPID));

výsledek

[1,"4BEA4F9F-D169-414F-AF99-9270FDB2EA62",55]

Příklad 8

Následující příklad vrátí pole JSON na řádek v dotazu.

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;

výsledek

session_id informace
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"]

Příklad 9

Následující příklad vrátí pole JSON jako typ JSON .

SELECT JSON_ARRAY(1 RETURNING JSON);

výsledek

[1]