Megosztás a következőn keresztül:


JSON_PATH_EXISTS (Transact-SQL)

Vonatkozik a következőkre: SQL Server 2022 (16.x) és későbbi verziók, Azure SQL Database,Azure SQL Managed Instance,Azure Synapse Analytics,SQL database in Microsoft Fabric

A JSON_PATH_EXISTS szintaxis azt ellenőrzi, hogy létezik-e megadott SQL/JSON-elérési út a bemeneti JSON-sztringben.

Transact-SQL szintaxis konvenciói

Syntax

JSON_PATH_EXISTS( value_expression , sql_json_path )

Arguments

value_expression

Karakterkifejezés.

sql_json_path

Érvényes SQL/JSON-elérési út a bemenetben való teszteléshez.

Visszaadott érték

1, 0 vagy NULLint értékét adja vissza. Akkor adja NULL vissza, ha a value_expression vagy bemenet EGY SQL-érték NULL . 1 ad vissza, ha a megadott SQL/JSON-elérési út létezik a bemenetben, vagy nem üres sorozatot ad vissza. Máskülönben 0 ad vissza.

A JSON_PATH_EXISTS függvény nem ad vissza hibákat.

Examples

1. példa

Az alábbi példa 1 értéket ad vissza, mivel a bemeneti JSON-sztring tartalmazza a megadott SQL/JSON-elérési utat. Ez a példa beágyazott elérési utat használ, ahol a kulcs egy másik objektumban található.

DECLARE @jsonInfo AS NVARCHAR (MAX);

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

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

Itt van az eredményhalmaz.

1

2. példa

Az alábbi példa 0 értéket ad vissza, mivel a bemeneti JSON-sztring nem tartalmazza a megadott SQL/JSON elérési utat.

DECLARE @jsonInfo AS NVARCHAR (MAX);

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

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

Itt van az eredményhalmaz.

0

3. példa

Az alábbi példa helyettesítő karaktert használ JSON_PATH_EXISTS() :

DECLARE @jsonInfo AS NVARCHAR (MAX);

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

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

Itt van az eredményhalmaz.

1

Az alábbiakban a tömb legalább egy elemét megkeresi egy kulccsal townrendelkező objektum, és talál egyet.

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

Itt van az eredményhalmaz.

1

Az alábbiakban a tömb legalább egy elemének van egy kulcssal townrendelkező objektuma, de nem talál egyet.

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

Itt van az eredményhalmaz.

0