Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
se aplica a:SQL Server
Azure SQL Database
punto de conexión de Azure SQL Managed Instance
SQL Analytics en Microsoft Fabric
Warehouse en Microsoft Fabric
Construye texto de matriz JSON a partir de cero o más expresiones.
Sintaxis
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
Argumentos
json_array_value
Expresión que define el valor del elemento en la matriz JSON.
json_null_clause
Se puede usar para controlar el comportamiento de JSON_OBJECT función cuando value_expression es NULL. La opción NULL ON NULL convierte el valor NULL de SQL en un valor NULL de JSON al generar el valor del elemento en la matriz JSON. La opción ABSENT ON NULL omitirá el elemento de la matriz JSON si el valor es NULL. La configuración predeterminada de esta opción es ABSENT ON NULL.
Valor devuelto
Devuelve una cadena de matriz JSON válida de tipo nvarchar(max). Si se incluye la RETURNING json opción, la matriz JSON se devuelve como tipo json .
Para obtener más información sobre lo que se ve en la salida de la función JSON_ARRAY, consulte los artículos siguientes:
| Artículo | Description |
|---|---|
| Cómo FOR JSON convierte los tipos de datos de SQL Server en tipos de datos JSON | La función JSON_ARRAY usa las reglas descritas en este artículo sobre FOR JSON para convertir tipos de datos SQL a tipos JSON en la salida JSON. |
| Cómo FOR JSON inserta caracteres de escape en los caracteres especiales y caracteres de control | La función JSON_ARRAY inserta un carácter de escape en los caracteres especiales y representa los caracteres de control en la salida JSON como se describe en este artículo sobre FOR JSON. |
Ejemplos
Ejemplo 1
En el siguiente ejemplo se devuelve una matriz JSON vacía.
SELECT JSON_ARRAY();
Resultado
[]
Ejemplo 2
En el siguiente ejemplo se devuelve una matriz JSON con cuatro elementos.
SELECT JSON_ARRAY('a', 1, 'b', 2);
Resultado
["a",1,"b",2]
Ejemplo 3
En el ejemplo siguiente se devuelve una matriz JSON con tres elementos, ya que uno de los valores de entrada es NULL. Dado que se omite el json_null_clause y el valor predeterminado para esta opción es ABSENT ON NULL, el NULL valor de una de las entradas no se convierte en un valor NULL JSON.
SELECT JSON_ARRAY('a', 1, 'b', NULL);
Resultado
["a",1,"b"]
Ejemplo 4
En el siguiente ejemplo se devuelve una matriz JSON con cuatro elementos. La opción NULL ON NULL se especifica para que cualquier valor de SQL NULL de la entrada se convierta en valor NULL JSON en la matriz JSON.
SELECT JSON_ARRAY('a', 1, NULL, 2 NULL ON NULL);
Resultado
["a",1,null,2]
Ejemplo 5
En el siguiente ejemplo se devuelve una matriz JSON con dos elementos. Un elemento contiene una cadena JSON y el otro, un objeto JSON.
SELECT JSON_ARRAY('a', JSON_OBJECT('name':'value', 'type':1));
Resultado
["a",{"name":"value","type":1}]
Ejemplo 6
En el siguiente ejemplo se devuelve una matriz JSON con tres elementos. Un elemento contiene una cadena JSON, otro elemento contiene un objeto JSON y otro elemento contiene una matriz JSON.
SELECT JSON_ARRAY('a', JSON_OBJECT('name':'value', 'type':1), JSON_ARRAY(1, NULL, 2 NULL ON NULL));
Resultado
["a",{"name":"value","type":1},[1,null,2]]
Ejemplo 7
En el siguiente ejemplo se devuelve una matriz JSON con las entradas especificadas como variables o expresiones SQL.
DECLARE @id_value AS NVARCHAR (64) = NEWID();
SELECT JSON_ARRAY(1, @id_value, (SELECT @@SPID));
Resultado
[1,"4BEA4F9F-D169-414F-AF99-9270FDB2EA62",55]
Ejemplo 8
En el siguiente ejemplo se devuelve una matriz JSON por fila de la consulta.
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;
Resultado
| session_id | info |
|---|---|
| 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"] |
Ejemplo 9
En el ejemplo siguiente se devuelve una matriz JSON como tipo json .
SELECT JSON_ARRAY(1 RETURNING JSON);
Resultado
[1]