Delen via


JSON_PATH_EXISTS (Transact-SQL)

Van toepassing op: SQL Server 2022 (16.x) en latere versies van Azure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsSQL-database in Microsoft Fabric Preview

De JSON_PATH_EXISTS syntaxis test of een opgegeven SQL/JSON-pad bestaat in de JSON-invoertekenreeks.

Transact-SQL syntaxisconventies

Syntax

JSON_PATH_EXISTS( value_expression , sql_json_path )

Arguments

value_expression

Een tekenexpressie.

sql_json_path

Een geldig SQL/JSON-pad om te testen in de invoer.

Return value

Retourneert een int-waarde van 1 of 0 of NULL. Retourneert NULL als de value_expression of invoer een SQL-waarde NULL is. Retourneert 1 als het opgegeven SQL/JSON-pad bestaat in de invoer of een niet-lege reeks retourneert. Retourneert 0 anders.

De functie JSON_PATH_EXISTS retourneert geen fouten.

Examples

Example 1

In het volgende voorbeeld wordt 1 geretourneerd omdat de JSON-invoertekenreeks het opgegeven SQL/JSON-pad bevat. In dit voorbeeld wordt een geneste pad gebruikt waarin de sleutel aanwezig is in een ander object.

DECLARE @jsonInfo AS NVARCHAR (MAX);

SET @jsonInfo = N'{"info":{"address":[{"town":"Paris"},{"town":"London"}]}}';

SELECT JSON_PATH_EXISTS(@jsonInfo, '$.info.address');

Dit is de resultatenset.

1

Example 2

In het volgende voorbeeld wordt 0 geretourneerd omdat de JSON-invoertekenreeks niet het opgegeven SQL/JSON-pad bevat.

DECLARE @jsonInfo AS NVARCHAR (MAX);

SET @jsonInfo = N'{"info":{"address":[{"town":"Paris"},{"town":"London"}]}}';

SELECT JSON_PATH_EXISTS(@jsonInfo, '$.info.addresses');

Dit is de resultatenset.

0

Example 3

In het volgende voorbeeld wordt JSON_PATH_EXISTS() gebruikgemaakt van een jokerteken:

DECLARE @jsonInfo AS NVARCHAR (MAX);

SET @jsonInfo = N'{"info":{"address":[{"town":"Paris"},{"town":"London"}]}}';

SELECT JSON_PATH_EXISTS(@jsonInfo, '$.info.address[*].town'); -- Returns: 1

Dit is de resultatenset.

1

Hieronder wordt gezocht naar ten minste één element in de matrix met een object met sleutel townen wordt er een gevonden.

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")

Dit is de resultatenset.

1

Hieronder wordt gezocht naar ten minste één element in de matrix met een object met sleutel town, maar er wordt geen gevonden.

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")

Dit is de resultatenset.

0