Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy: SQL Server 2022 (16.x)
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
punkt końcowy analizy SQL w usłudze Microsoft Fabric
Warehouse w usłudze Microsoft Fabric
Sprawdza, czy określona ścieżka SQL/JSON istnieje w wejściowym ciągu JSON.
Transact-SQL konwencje składni
Składnia
JSON_PATH_EXISTS( value_expression , sql_json_path )
Argumenty
value_expression
Wyrażenie znaku.
sql_json_path
Prawidłowa ścieżka SQL/JSON do testowania w danych wejściowych.
Wartość zwracana
Zwraca wartość int 1
lub 0
lub NULL
. Zwraca NULL
, jeśli value_expression lub dane wejściowe są wartością NULL
SQL. Zwraca 1
, jeśli dana ścieżka SQL/JSON istnieje w danych wejściowych lub zwraca niepustą sekwencję. Zwraca 0
w przeciwnym razie.
Funkcja JSON_PATH_EXISTS
nie zwraca błędów.
Przykłady
Przykład 1
Poniższy przykład zwraca wartość 1, ponieważ wejściowy ciąg JSON zawiera określoną ścieżkę SQL/JSON. W tym przykładzie użyto ścieżki zagnieżdżonej, w której klucz znajduje się w innym obiekcie.
DECLARE @jsonInfo AS NVARCHAR (MAX);
SET @jsonInfo = N'{"info":{"address":[{"town":"Paris"},{"town":"London"}]}}';
SELECT JSON_PATH_EXISTS(@jsonInfo, '$.info.address');
Oto zestaw wyników.
1
Przykład 2
Poniższy przykład zwraca wartość 0, ponieważ wejściowy ciąg JSON nie zawiera określonej ścieżki SQL/JSON.
DECLARE @jsonInfo AS NVARCHAR (MAX);
SET @jsonInfo = N'{"info":{"address":[{"town":"Paris"},{"town":"London"}]}}';
SELECT JSON_PATH_EXISTS(@jsonInfo, '$.info.addresses');
Oto zestaw wyników.
0
Przykład 3
W poniższym przykładzie użyto JSON_PATH_EXISTS()
symbolu wieloznakowego:
DECLARE @jsonInfo AS NVARCHAR (MAX);
SET @jsonInfo = N'{"info":{"address":[{"town":"Paris"},{"town":"London"}]}}';
SELECT JSON_PATH_EXISTS(@jsonInfo, '$.info.address[*].town'); -- Returns: 1
Oto zestaw wyników.
1
Poniższe wyszukiwanie zawiera co najmniej jeden element w tablicy z obiektem z kluczem town
i znajduje go.
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")
Oto zestaw wyników.
1
Poniższe wyszukiwanie co najmniej jednego elementu w tablicy zawiera obiekt z kluczem town
, ale nie znajduje żadnego.
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")
Oto zestaw wyników.
0