共用方式為


JSON_PATH_EXISTS(Transact-SQL)

適用於:SQL Server 2022 (16.x) 及 later versions, Azure SQL Database AzureSQL Managed InstanceAzure Synapse AnalyticsSQL database in Microsoft Fabric

語法 JSON_PATH_EXISTS 會測試指定的 SQL/JSON 路徑是否存在於輸入 JSON 字串中。

Transact-SQL 語法慣例

Syntax

JSON_PATH_EXISTS( value_expression , sql_json_path )

Arguments

value_expression

字元運算式。

sql_json_path

在輸入中測試的有效 SQL/JSON 路徑。

返回值

傳回 或 10NULL int 值。 如果NULL或輸入是 SQL 值,則傳NULL回 。 若指定的 SQL/JSON 路徑存在於輸入中,或傳回非空白序列,則會傳回 1。 否則會傳回 0

JSON_PATH_EXISTS 函數不會傳回錯誤。

Examples

範例 1

因為輸入 JSON 字串包含指定的 SQL/JSON 路徑,所以下列範例會傳回 1。 此範例使用巢狀路徑,其中索引鍵存在於另一個物件中。

DECLARE @jsonInfo AS NVARCHAR (MAX);

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

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

以下是結果集。

1

範例 2

因為輸入 JSON 字串不包含指定的 SQL/JSON 路徑,所以下列範例會傳回 0。

DECLARE @jsonInfo AS NVARCHAR (MAX);

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

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

以下是結果集。

0

範例 3

下列範例會搭配通配符使用 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

以下是結果集。

1

下列會尋找陣列中至少有一個元素具有索引鍵 town的物件,並尋找一個專案。

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

以下是結果集。

1

下列會尋找陣列中至少有一個元素具有索引鍵 town的物件,但找不到 。

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

以下是結果集。

0