適用於: SQL Server 2022 (16.x)
Azure SQL Database
Azure SQL 受控實例
Azure Synapse Analytics
SQL 分析端點Microsoft Fabric
Warehouse Microsoft Fabric
測試指定的 SQL/JSON 路徑是否存在於輸入 JSON 字串中。
語法
JSON_PATH_EXISTS( value_expression , sql_json_path )
引數
value_expression
字元運算式。
sql_json_path
在輸入中測試的有效 SQL/JSON 路徑。
傳回值
傳回 或 1
0
的 NULL
int 值。 若 NULL
或輸入是 SQL 值,則會傳回 NULL
。 若指定的 SQL/JSON 路徑存在於輸入中,或傳回非空白序列,則會傳回 1
。 否則會傳回 0
。
JSON_PATH_EXISTS
函數不會傳回錯誤。
範例
範例 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