Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Относится к: SQL Server 2022 (16.x) и более поздние версии
: Azure SQL Database,
Azure SQL Managed Instance
,Azure Synapse Analytics
SQL 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 для тестирования во входных данных.
Возвращаемое значение
Возвращает целое значение 1 или 0NULL. Возвращает значение NULL SQL NULL или входные данные. Возвращает, 1 существует ли заданный путь SQL/JSON во входных данных или возвращает непустую последовательность. Возвращается 0 в противном случае.
Функция JSON_PATH_EXISTS не возвращает ошибки.
Examples
Пример 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
Пример 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
Пример 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