Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier les répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer de répertoire.
S’applique à : SQL Server 2022 (16.x) et versions
ultérieures Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
SQL database in Microsoft Fabric
La JSON_PATH_EXISTS syntaxe teste si un chemin SQL/JSON spécifié existe dans la chaîne JSON d’entrée.
Conventions de la syntaxe Transact-SQL
Syntax
JSON_PATH_EXISTS( value_expression , sql_json_path )
Arguments
value_expression
Expression de caractère.
sql_json_path
Chemin SQL/JSON valide à tester dans l’entrée.
Valeur retournée
Retourne une valeur int de 1 ou 0NULL. Retourne NULL si le value_expression ou l’entrée est une valeur SQL NULL . Retourne 1 si le chemin SQL/JSON donné existe dans l’entrée ou retourne une séquence non vide. Renvoie 0 dans le cas contraire.
La fonction JSON_PATH_EXISTS ne retourne pas d’erreurs.
Examples
Exemple 1
L’exemple suivant retourne 1, car la chaîne JSON d’entrée contient le chemin SQL/JSON spécifié. Cet exemple utilise un chemin imbriqué où la clé est présente dans un autre objet.
DECLARE @jsonInfo AS NVARCHAR (MAX);
SET @jsonInfo = N'{"info":{"address":[{"town":"Paris"},{"town":"London"}]}}';
SELECT JSON_PATH_EXISTS(@jsonInfo, '$.info.address');
Voici le jeu de résultats.
1
Exemple 2
L’exemple suivant retourne 0, car la chaîne JSON d’entrée ne contient pas le chemin SQL/JSON spécifié.
DECLARE @jsonInfo AS NVARCHAR (MAX);
SET @jsonInfo = N'{"info":{"address":[{"town":"Paris"},{"town":"London"}]}}';
SELECT JSON_PATH_EXISTS(@jsonInfo, '$.info.addresses');
Voici le jeu de résultats.
0
Exemple 3
L’exemple suivant utilise JSON_PATH_EXISTS() un caractère générique :
DECLARE @jsonInfo AS NVARCHAR (MAX);
SET @jsonInfo = N'{"info":{"address":[{"town":"Paris"},{"town":"London"}]}}';
SELECT JSON_PATH_EXISTS(@jsonInfo, '$.info.address[*].town'); -- Returns: 1
Voici le jeu de résultats.
1
L’exemple suivant recherche au moins un élément dans le tableau avec une clé townet en trouve un.
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")
Voici le jeu de résultats.
1
L’exemple suivant recherche au moins un élément dans le tableau possède un objet avec une clé town, mais ne trouve aucun élément.
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")
Voici le jeu de résultats.
0