Bagikan melalui


JSON_PATH_EXISTS (Transact-SQL)

Berlaku untuk: SQL Server 2022 (16.x) dan versi yang lebih baru Azure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsSQL database di 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