Megosztás a következőn keresztül:


JSON_ARRAY (Transact-SQL)

A következőkre vonatkozik:SQL ServerAzure SQL DatabaseFelügyelt Azure SQL-példánySQL Analytics-végpont a Microsoft FabricWarehouse-ban a Microsoft Fabric

JSON-tömbszöveget hoz létre nulla vagy több kifejezésből.

Szintaxis

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

Érvek

json_array_value

A JSON-tömbben lévő elem értékét meghatározó kifejezés.

json_null_clause

A JSON_OBJECT függvény viselkedésének szabályozására használható, ha value_expressionNULL. A beállítás NULL ON NULL az SQL NULL értékét JSON NULL értékké alakítja a JSON-tömbben lévő elem értékének létrehozásakor. Ha az érték ABSENT ON NULL, a NULL lehetőség kihagyja az elemet a JSON-tömbből. Ennek a beállításnak az alapértelmezett beállítása a ABSENT ON NULL.

Visszaadott érték

Egy érvényes JSON-tömbsztringet ad vissza, amely nvarchar(max) típusú. Ha a beállítás szerepel a RETURNING json beállításban, a JSON-tömb JSON-típusként lesz visszaadva.

A JSON_ARRAY függvény kimenetében megjelenő információkról az alábbi cikkekben talál további információt:

Cikk Description
Hogyan konvertálja a JSON az SQL Server-adattípusokat JSON-adattípusokká? A JSON_ARRAY függvény az ebben a FOR JSON cikkben leírt szabályokat használja az SQL-adattípusok JSON-típusokká alakításához a JSON-tömb kimenetében.
Hogyan kezeli az FOR JSON a speciális és vezérlő karaktereket A JSON_ARRAY függvény feloldja a speciális karaktereket, és a JSON-kimenet vezérlőkarakterekét jelöli a jelen FOR JSON cikkben leírtak szerint.

Példák

1. példa

Az alábbi példa egy üres JSON-tömböt ad vissza.

SELECT JSON_ARRAY();

Eredmény

[]

2. példa

Az alábbi példa egy négy elemet tartalmazó JSON-tömböt ad vissza.

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

Eredmény

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

3. példa

Az alábbi példa egy három elemet tartalmazó JSON-tömböt ad vissza, mivel az egyik bemeneti érték NULL. Mivel a json_null_clause nincs megadva, és ennek a beállításnak az alapértelmezett értéke, ABSENT ON NULLaz NULL egyik bemenet értéke nem lesz JSON null értékűre konvertálva.

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

Eredmény

["a",1,"b"]

4. példa

Az alábbi példa egy négy elemet tartalmazó JSON-tömböt ad vissza. A NULL ON NULL beállítás úgy van megadva, hogy a bemeneti SQL NULL értéke JSON null értékké legyen konvertálva a JSON-tömbben.

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

Eredmény

["a",1,null,2]

5. példa

Az alábbi példa egy két elemet tartalmazó JSON-tömböt ad vissza. Az egyik elem tartalmaz egy JSON-sztringet, egy másik elem pedig egy JSON-objektumot.

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

Eredmény

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

6. példa

Az alábbi példa egy három elemet tartalmazó JSON-tömböt ad vissza. Az egyik elem tartalmaz egy JSON-sztringet, egy másik elem egy JSON-objektumot, egy másik elem pedig egy JSON-tömböt.

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

Eredmény

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

7. példa

Az alábbi példa egy JSON-tömböt ad vissza változóként vagy SQL-kifejezésként megadott bemenetekkel.

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

Eredmény

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

8. példa

Az alábbi példa egy JSON-tömböt ad vissza soronként a lekérdezésben.

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;

Eredmény

session_id infó
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"]

9. példa

Az alábbi példa json típusú JSON-tömböt ad vissza.

SELECT JSON_ARRAY(1 RETURNING JSON);

Eredmény

[1]