Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Относится к: 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