Partager via


JSON_PATH_EXISTS (Transact-SQL)

S’applique à : SQL Server 2022 (16.x) et versions ultérieures Azure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsSQL 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