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 2022 (16.x)
Azure SQL Database
Instancia administrada de Azure SQL
punto de conexión de Análisis sql de Azure Synapse Analytics
SQL en Microsoft Fabric
Warehouse en Microsoft Fabric
Comprueba si existe una ruta de acceso JSON o SQL especificada en la cadena JSON de entrada.
Convenciones de sintaxis de Transact-SQL
Sintaxis
JSON_PATH_EXISTS( value_expression , sql_json_path )
Argumentos
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 0
NULL
. Devuelve NULL
si la value_expression o la entrada es un valor NULL
de SQL. 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.
Ejemplos
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 town
y 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