適用対象:Sql Server 2016 (13.x) 以降のバージョン
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Microsoft Fabric のハードウェア
Microsoft Fabric のウェアハウスの SQL 分析エンドポイント
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 専用プールではサポートされていません
Return value
文字列に有効な 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
Example 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
Example 2
次の例は、列 json_col
に有効な JSON が含まれている行を返します。
SELECT id, json_col
FROM tab1
WHERE ISJSON(json_col) = 1
Example 3
次の例は、列 json_col
に最上位の有効な JSON SCALAR 値が含まれている行を返します。
SELECT id, json_col
FROM tab1
WHERE ISJSON(json_col, SCALAR) = 1
Example 4
次の例では、入力が有効な JSON 値 ( true) であるため、1 が返されます。
SELECT ISJSON('true', VALUE)
Example 5
次の例では、入力が無効な JSON 値であるため、0 が返されます。
SELECT ISJSON('test string', VALUE)
Example 6
次の例では、入力が RFC 8259 に準拠した有効な JSON スカラーであるため、1 が返されます。
SELECT ISJSON('"test string"', SCALAR)