適用対象:Sql Server 2016 (13.x) 以降のバージョン
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Microsoft Fabric の AzureSQL 分析エンドポイント
Microsoft Fabric のウェアハウス
Microsoft Fabric のSQL データベース
ISJSON構文は、文字列に有効な JSON が含まれているかどうかをテストします。
Syntax
ISJSON ( expression [, json_type_constraint] )
Arguments
expression
テストする文字列。
json_type_constraint
入力でチェックインする JSON の種類を指定します。 有効な値は VALUE、ARRAY、OBJECT、または SCALAR です。 SQL Server 2022 (16.x) で導入されています。
Note
引数json_type_constraintは、Azure Synapse Analytics 専用プールではサポートされていません
戻り値
文字列に有効な JSON が含まれている場合は 1 を、それ以外の場合は 0 を返します。
NULLが null の場合を返します。
ステートメントで json_type_constraintが省略されている場合、関数は入力が有効な JSON オブジェクトまたは配列であるかどうかをテストし、それ以外の場合は 1 返し、 0を返します。
json_type_constraintが指定されている場合、関数は JSON 型を次のようにチェックします。
| Value | Description |
|---|---|
VALUE |
有効な JSON 値をテストします。 これは、JSON オブジェクト、配列、数値、文字列、または 3 つのリテラル値 (false、true、null) のいずれかである可能性があります |
ARRAY |
有効な JSON 配列をテストします |
OBJECT |
有効な JSON オブジェクトをテストします |
SCALAR |
有効な JSON スカラー (数値または文字列) をテストします |
json_type_constraint値 SCALAR を使用して、最上位レベルの JSON スカラー値のみを含む IETF RFC 8259 準拠 JSON ドキュメントをテストできます。 最上位レベルの JSON スカラー値を含んでいない JSON ドキュメントは、IETF RFC 4627 に準拠しています。
エラーは返されません。
Remarks
ISJSON は、同じレベルのキーの一意性をチェックしません。
Examples
例 1
次の例では、パラメーター値 @param に有効な JSON が含まれている場合は、ステートメント ブロックを条件付きで実行します。
DECLARE @param <data type>
SET @param = <value>
IF (ISJSON(@param) > 0)
BEGIN
-- Do something with the valid JSON value of @param.
END
例 2
次の例は、列 json_col に有効な JSON が含まれている行を返します。
SELECT id, json_col
FROM tab1
WHERE ISJSON(json_col) = 1
例 3
次の例は、列 json_col に最上位の有効な JSON SCALAR 値が含まれている行を返します。
SELECT id, json_col
FROM tab1
WHERE ISJSON(json_col, SCALAR) = 1
例 4
次の例では、入力が有効な JSON 値 ( true) であるため、1 が返されます。
SELECT ISJSON('true', VALUE)
例 5
次の例では、入力が無効な JSON 値であるため、0 が返されます。
SELECT ISJSON('test string', VALUE)
例 6
次の例では、入力が RFC 8259 に準拠した有効な JSON スカラーであるため、1 が返されます。
SELECT ISJSON('"test string"', SCALAR)