Aracılığıyla paylaş


JSON_PATH_EXISTS (Transact-SQL)

Şunlar için geçerlidir: SQL Server 2022 (16.x) Azure SQL VeritabanıAzure SQL Yönetilen ÖrneğiMicrosoft FabricAmbarı'nda Azure Synapse AnalyticsSQL analytics uç noktası

Giriş JSON dizesinde belirtilen bir SQL/JSON yolunun mevcut olup olmadığını test eder.

Transact-SQL söz dizimi kuralları

Sözdizimi

JSON_PATH_EXISTS( value_expression , sql_json_path )

Bağımsız değişken

value_expression

Karakter ifadesi.

sql_json_path

Girişte test etmek için geçerli bir SQL/JSON yolu.

Dönüş değeri

1, 0 veya NULLint değerini döndürür. NULL veya giriş bir SQL değeriyse NULL döndürür. Verilen SQL/JSON yolu girişte varsa veya boş olmayan bir dizi döndürüyorsa 1 döndürür. Aksi takdirde 0 döndürür.

JSON_PATH_EXISTS işlevi hata döndürmez.

Örnekler

Örnek 1

Giriş JSON dizesi belirtilen SQL/JSON yolunu içerdiğinden aşağıdaki örnek 1 döndürür. Bu örnek, anahtarın başka bir nesnede bulunduğu iç içe yerleştirilmiş bir yol kullanır.

DECLARE @jsonInfo AS NVARCHAR (MAX);

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

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

Sonuç kümesi aşağıdadır.

1

Örnek 2

Giriş JSON dizesi belirtilen SQL/JSON yolunu içermediğinden aşağıdaki örnek 0 döndürür.

DECLARE @jsonInfo AS NVARCHAR (MAX);

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

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

Sonuç kümesi aşağıdadır.

0

Örnek 3

Aşağıdaki örnekte joker karakter kullanılır 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

Sonuç kümesi aşağıdadır.

1

Aşağıda dizideki en az bir öğenin anahtarı townolan bir nesnesi vardır ve bir öğe bulur.

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

Sonuç kümesi aşağıdadır.

1

Aşağıda dizideki en az bir öğenin anahtarına townsahip bir nesnesi vardır ancak hiçbiri bulunmaz.

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

Sonuç kümesi aşağıdadır.

0
  • SQL Server'da JSON verilerini