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> ] )
<json_array_value> ::= value_expression
<json_null_clause> ::=
NULL ON NULL
| ABSENT ON NULL
Argumenty
json_array_value
Je výraz, který definuje hodnotu elementu v poli JSON.
json_null_clause
Lze použít k řízení chování JSON_OBJECT
funkce, když value_expression má hodnotu 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.
Další informace o tom, co vidíte ve výstupu funkce JSON_ARRAY
, najdete v následujících článcích:
Způsob převodu datových typů SQL Serveru na datové typy JSON (SQL Server)
FunkceJSON_ARRAY
používá pravidla popsaná v tomto článkuFOR JSON
k převodu datových typů SQL na typy JSON ve výstupu pole JSON.Jak pro JSON řídicí znaky a řídicí znaky (SQL Server)
FunkceJSON_ARRAY
řídicími znaky a představuje řídicí znaky ve výstupu JSON, jak je popsáno v tomtoFOR 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 má hodnotu NULL. Vzhledem k tomu, json_null_clause je vynechán a výchozí hodnota pro tuto možnost je CHYBĚJÍCÍ ON NULL, hodnota NULL 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. Je zadána možnost NULL ON NULL, 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 & jiný 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 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"] |