JSON_PATH_EXISTS (Transact-SQL)

Berlaku untuk: SQL Server 2022 (16.x) dan versi yang lebih baru Azure SQL DatabaseAzure SQL Managed InstanceAzureSynapse AnalyticsTitikakhir analitik SQL di Microsoft Fabric dan Gudang di database Microsoft FabricSQLdi Microsoft Fabric

Sintaks JSON_PATH_EXISTS menguji apakah jalur SQL/JSON tertentu ada dalam string JSON input.

Konvensi sintaks transact-SQL

Syntax

JSON_PATH_EXISTS( value_expression , sql_json_path )

Arguments

value_expression

Ekspresi karakter.

sql_json_path

Jalur SQL/JSON yang valid untuk diuji dalam input.

Mengembalikan nilai

Mengembalikan nilai int atau 1 atau 0NULL. Mengembalikan NULL jika value_expression atau input adalah nilai SQL NULL . Mengembalikan 1 jika jalur SQL/JSON yang diberikan ada dalam input atau mengembalikan urutan yang tidak kosong. Mengembalikan 0 sebaliknya.

Fungsi JSON_PATH_EXISTS ini tidak mengembalikan kesalahan.

Examples

Contoh 1

Contoh berikut mengembalikan 1 karena string JSON input berisi jalur SQL/JSON yang ditentukan. Contoh ini menggunakan jalur berlapis tempat kunci ada di objek lain.

DECLARE @jsonInfo AS NVARCHAR (MAX);

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

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

Berikut adalah hasil yang ditetapkan.

1

Contoh 2

Contoh berikut mengembalikan 0 karena string JSON input tidak berisi jalur SQL/JSON yang ditentukan.

DECLARE @jsonInfo AS NVARCHAR (MAX);

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

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

Berikut adalah hasil yang ditetapkan.

0

Contoh 3

Contoh berikut menggunakan dengan kartubebas 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

Berikut adalah hasil yang ditetapkan.

1

Berikut ini mencari setidaknya satu elemen dalam array memiliki objek dengan kunci town, dan menemukannya.

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

Berikut adalah hasil yang ditetapkan.

1

Berikut ini mencari setidaknya satu elemen dalam array memiliki objek dengan kunci town, tetapi tidak menemukannya.

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

Berikut adalah hasil yang ditetapkan.

0