Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Применимо к: SQL Server 2022 (16.x) и более поздних версий
Базы данных
SQL Azure SQL Azure, Управляемого экземпляра
AzureSynapse Analytics
SQL в Предварительной версии 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 для тестирования во входных данных.
Return value
Возвращает целое значение 1
или 0
NULL
. Возвращает значение NULL
SQL NULL
, если value_expression или входные данные. Возвращает, 1
существует ли заданный путь SQL/JSON во входных данных или возвращает непустую последовательность. Возвращается 0
в противном случае.
Функция JSON_PATH_EXISTS
не возвращает ошибки.
Examples
Example 1
В следующем примере возвращается значение 1, так как входная строка JSON содержит указанный путь SQL/JSON. В этом примере используется вложенный путь, в котором ключ присутствует в другом объекте.
DECLARE @jsonInfo AS NVARCHAR (MAX);
SET @jsonInfo = N'{"info":{"address":[{"town":"Paris"},{"town":"London"}]}}';
SELECT JSON_PATH_EXISTS(@jsonInfo, '$.info.address');
Вот результирующий набор.
1
Example 2
В следующем примере возвращается значение 0, так как входная строка JSON не содержит указанный путь SQL/JSON.
DECLARE @jsonInfo AS NVARCHAR (MAX);
SET @jsonInfo = N'{"info":{"address":[{"town":"Paris"},{"town":"London"}]}}';
SELECT JSON_PATH_EXISTS(@jsonInfo, '$.info.addresses');
Вот результирующий набор.
0
Example 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