Sdílet prostřednictvím


JSON_PATH_EXISTS (Transact-SQL)

Platí na: SQL Server 2022 (16.x) a nowše verzie Azure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsSQL database in Microsoft Fabric

Syntaxe JSON_PATH_EXISTS testuje, jestli v vstupním řetězci JSON existuje zadaná cesta SQL/JSON.

Transact-SQL konvence syntaxe

Syntax

JSON_PATH_EXISTS( value_expression , sql_json_path )

Arguments

value_expression

Výraz znaku.

sql_json_path

Platná cesta SQL/JSON, která se má testovat ve vstupu.

Návratová hodnota

Vrátí hodnotu typu int 1 nebo 0 nebo NULL. Vrátí NULL , pokud value_expression nebo vstup je hodnota SQL NULL . Vrátí 1, pokud daná cesta SQL/JSON existuje ve vstupu nebo vrátí neprázdnou sekvenci. Vrátí 0 jinak.

Funkce JSON_PATH_EXISTS nevrací chyby.

Examples

Příklad 1

Následující příklad vrátí hodnotu 1, protože vstupní řetězec JSON obsahuje zadanou cestu SQL/JSON. V tomto příkladu se používá vnořená cesta, ve které je klíč přítomen v jiném objektu.

DECLARE @jsonInfo AS NVARCHAR (MAX);

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

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

Tady je sada výsledků.

1

Příklad 2

Následující příklad vrátí hodnotu 0, protože vstupní řetězec JSON neobsahuje zadanou cestu SQL/JSON.

DECLARE @jsonInfo AS NVARCHAR (MAX);

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

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

Tady je sada výsledků.

0

Příklad 3

Následující příklad používá JSON_PATH_EXISTS() se zástupným znakem:

DECLARE @jsonInfo AS NVARCHAR (MAX);

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

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

Tady je sada výsledků.

1

Následující příkaz hledá alespoň jeden prvek v poli má objekt s klíčem towna najde ho.

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

Tady je sada výsledků.

1

Následující příkaz hledá alespoň jeden prvek v poli má objekt s klíčem town, ale nenajde žádné.

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

Tady je sada výsledků.

0