Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a: SQL Server 2022 (16.x) e versões
posteriores Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
SQL database in Microsoft Fabric
A JSON_PATH_EXISTS sintaxe testa se existe um caminho SQL/JSON especificado na cadeia de caracteres JSON de entrada.
Transact-SQL convenções de sintaxe
Syntax
JSON_PATH_EXISTS( value_expression , sql_json_path )
Arguments
value_expression
Uma expressão de caráter.
sql_json_path
Um caminho SQL/JSON válido para testar na entrada.
Valor de retorno
Devolve um valor int de 1 ou 0 ou NULL. Retorna NULL se a value_expression ou entrada for um valor SQL NULL . Retorna 1 se o caminho SQL/JSON fornecido existe na entrada ou retorna uma sequência não vazia. Retorna 0 caso contrário.
A função JSON_PATH_EXISTS não retorna erros.
Examples
Exemplo 1
O exemplo a seguir retorna 1, pois a cadeia de caracteres JSON de entrada contém o caminho SQL/JSON especificado. Este exemplo usa um caminho aninhado onde a chave está presente em outro objeto.
DECLARE @jsonInfo AS NVARCHAR (MAX);
SET @jsonInfo = N'{"info":{"address":[{"town":"Paris"},{"town":"London"}]}}';
SELECT JSON_PATH_EXISTS(@jsonInfo, '$.info.address');
Aqui está o conjunto de resultados.
1
Exemplo 2
O exemplo a seguir retorna 0, pois a cadeia de caracteres JSON de entrada não contém o caminho SQL/JSON especificado.
DECLARE @jsonInfo AS NVARCHAR (MAX);
SET @jsonInfo = N'{"info":{"address":[{"town":"Paris"},{"town":"London"}]}}';
SELECT JSON_PATH_EXISTS(@jsonInfo, '$.info.addresses');
Aqui está o conjunto de resultados.
0
Exemplo 3
O exemplo a seguir usa JSON_PATH_EXISTS() com um curinga:
DECLARE @jsonInfo AS NVARCHAR (MAX);
SET @jsonInfo = N'{"info":{"address":[{"town":"Paris"},{"town":"London"}]}}';
SELECT JSON_PATH_EXISTS(@jsonInfo, '$.info.address[*].town'); -- Returns: 1
Aqui está o conjunto de resultados.
1
O seguinte procura pelo menos um elemento na matriz tem um objeto com chave towne localiza um.
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")
Aqui está o conjunto de resultados.
1
O seguinte procura pelo menos um elemento na matriz tem um objeto com chave town, mas não encontra nenhum.
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")
Aqui está o conjunto de resultados.
0