Udostępnij za pomocą


JSON_PATH_EXISTS (Transact-SQL)

Dotyczy do: SQL Server 2022 (16.x) i nowsze wersje Azure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsSQL database in Microsoft Fabric

Składnia JSON_PATH_EXISTS sprawdza, czy określona ścieżka SQL/JSON istnieje w wejściowym ciągu JSON.

Transact-SQL konwencje składni

Syntax

JSON_PATH_EXISTS( value_expression , sql_json_path )

Arguments

value_expression

Wyrażenie znaku.

sql_json_path

Prawidłowa ścieżka SQL/JSON do testowania w danych wejściowych.

Wartość zwracana

Zwraca wartość int 1 lub 0 lub NULL. Zwraca wartość NULL , jeśli value_expression lub dane wejściowe są wartością SQL NULL . Zwraca 1, jeśli dana ścieżka SQL/JSON istnieje w danych wejściowych lub zwraca niepustą sekwencję. Zwraca 0 w przeciwnym razie.

Funkcja JSON_PATH_EXISTS nie zwraca błędów.

Examples

Przykład 1

Poniższy przykład zwraca wartość 1, ponieważ wejściowy ciąg JSON zawiera określoną ścieżkę SQL/JSON. W tym przykładzie użyto ścieżki zagnieżdżonej, w której klucz znajduje się w innym obiekcie.

DECLARE @jsonInfo AS NVARCHAR (MAX);

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

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

Oto zestaw wyników.

1

Przykład 2

Poniższy przykład zwraca wartość 0, ponieważ wejściowy ciąg JSON nie zawiera określonej ścieżki SQL/JSON.

DECLARE @jsonInfo AS NVARCHAR (MAX);

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

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

Oto zestaw wyników.

0

Przykład 3

W poniższym przykładzie użyto JSON_PATH_EXISTS() symbolu wieloznakowego:

DECLARE @jsonInfo AS NVARCHAR (MAX);

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

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

Oto zestaw wyników.

1

Poniższe wyszukiwanie zawiera co najmniej jeden element w tablicy z obiektem z kluczem towni znajduje go.

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

Oto zestaw wyników.

1

Poniższe wyszukiwanie co najmniej jednego elementu w tablicy zawiera obiekt z kluczem town, ale nie znajduje żadnego.

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

Oto zestaw wyników.

0