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.
Aplica a: SQL Server 2022 (16.x) y versiones
posteriores Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
SQL database in Microsoft Fabric
La JSON_PATH_EXISTS sintaxis comprueba si existe una ruta de acceso SQL/JSON especificada en la cadena JSON de entrada.
Convenciones de sintaxis de Transact-SQL
Syntax
JSON_PATH_EXISTS( value_expression , sql_json_path )
Arguments
value_expression
Una expresión de caracteres.
sql_json_path
Una ruta de acceso SQL/JSON válida que lleva a la prueba de la entrada.
Valor devuelto
Devuelve un valor int de 1 o 0NULL. Devuelve NULL si el value_expression o la entrada es un valor SQL NULL . Devuelve 1 si la ruta de acceso SQL/JSON especificada existe en la entrada o devuelve una secuencia no vacía. De lo contrario, devuelve 0.
La función JSON_PATH_EXISTS no devuelve errores.
Examples
Ejemplo 1
En el ejemplo siguiente se devuelve 1, ya que la cadena JSON de entrada contiene la ruta de acceso SQL/JSON especificada. En este ejemplo se usa una ruta de acceso anidada donde la clave está presente en otro objeto.
DECLARE @jsonInfo AS NVARCHAR (MAX);
SET @jsonInfo = N'{"info":{"address":[{"town":"Paris"},{"town":"London"}]}}';
SELECT JSON_PATH_EXISTS(@jsonInfo, '$.info.address');
Este es el conjunto de resultados.
1
Ejemplo 2
En el ejemplo siguiente se devuelve 0, ya que la cadena JSON de entrada no contiene la ruta de acceso SQL/JSON especificada.
DECLARE @jsonInfo AS NVARCHAR (MAX);
SET @jsonInfo = N'{"info":{"address":[{"town":"Paris"},{"town":"London"}]}}';
SELECT JSON_PATH_EXISTS(@jsonInfo, '$.info.addresses');
Este es el conjunto de resultados.
0
Ejemplo 3
En el ejemplo siguiente se usa JSON_PATH_EXISTS() con un carácter comodín:
DECLARE @jsonInfo AS NVARCHAR (MAX);
SET @jsonInfo = N'{"info":{"address":[{"town":"Paris"},{"town":"London"}]}}';
SELECT JSON_PATH_EXISTS(@jsonInfo, '$.info.address[*].town'); -- Returns: 1
Este es el conjunto de resultados.
1
A continuación se busca al menos un elemento de la matriz que tiene un objeto con la clave towny busca uno.
SET @jsonInfo = N'{"info":{"address":[{"town":"Paris"},{"city":"London"}]}}';
SELECT JSON_PATH_EXISTS(@jsonInfo, '$.info.address[*].town'); -- Returns: 1 (at least one element in array has an object with key "town")
Este es el conjunto de resultados.
1
A continuación se busca al menos un elemento de la matriz tiene un objeto con clave town, pero no encuentra ninguno.
SET @jsonInfo = N'{"info":{"address":[{"city":"Paris"},{"city":"London"}]}}';
SELECT JSON_PATH_EXISTS(@jsonInfo, '$.info.address[*].town'); -- Returns: 0 (no elements in array has an object with key "town")
Este es el conjunto de resultados.
0