JSON_ARRAY (Transact-SQL)
適用対象: SQL Server 2022 (16.x) Azure SQL Database
0 個以上の式から JSON 配列テキストを構築します。
構文
JSON_ARRAY ( [ <json_array_value> [,...n] ] [ <json_null_clause> ] )
<json_array_value> ::= value_expression
<json_null_clause> ::=
NULL ON NULL
| ABSENT ON NULL
引数
json_array_value JSON 配列内の要素の値を定義する式です。
json_null_clause value_expression が NULL の場合に、JSON_OBJECT 関数の動作を制御するために使用できます。 オプション NULL ON NULL を使用すると、JSON 配列内の要素の値を生成するときに、SQL NULL 値が JSON NULL 値に変換されます。 値が NULL の場合、オプション ABSENT ON NULL を使用すると、JSON 配列内の要素が省略されます。 このオプションの既定の設定は、ABSENT ON NULL です。
JSON_ARRAY
関数の出力に表示される内容の詳細については、次の記事を参照してください。
FOR JSON が SQL Server データ型を JSON データ型に変換する方法 (SQL Server)
JSON_ARRAY
関数では、FOR JSON
に関するこの記事で説明されている規則を使用して、JSON 配列出力内で SQL データ型を JSON 型に変換します。FOR JSON での特殊文字のエスケープと制御文字 (SQL Server)
JSON_ARRAY
関数を使用すると、FOR JSON
に関するこの記事で説明されている JSON 出力の特殊文字がエスケープされ、制御文字が表されます。
戻り値
nvarchar(max) 型の有効な JSON 配列文字列を返します。
解説
例
例 1
次の例では、空の JSON 配列を返します。
SELECT JSON_ARRAY();
結果
[]
例 2
次の例では、4 つの要素を持つ JSON 配列を返します。
SELECT JSON_ARRAY('a', 1, 'b', 2)
結果
["a",1,"b",2]
例 3
次の例では、入力値の 1 つが NULL であるため、3 つの要素を持つ JSON 配列を返します。 json_null_clause が省略され、このオプションの既定値が ABSENT ON NULL であるため、1 つの入力の NULL 値が JSON NULL 値に変換されることはありません。
SELECT JSON_ARRAY('a', 1, 'b', NULL)
結果
["a",1,"b"]
例 4
次の例では、4 つの要素を持つ JSON 配列を返します。 入力の SQL NULL 値が JSON 配列内で JSON NULL 値に変換されるように、NULL ON NULL オプションを指定します。
SELECT JSON_ARRAY('a', 1, NULL, 2 NULL ON NULL)
結果
["a",1,null,2]
例 5
次の例では、2 つの要素を持つ JSON 配列を返します。 1 つの要素には JSON 文字列が含まれており、もう 1 つの要素には JSON オブジェクトが含まれています。
SELECT JSON_ARRAY('a', JSON_OBJECT('name':'value', 'type':1))
結果
["a",{"name":"value","type":1}]
例 6
次の例では、3 つの要素を持つ JSON 配列を返します。 1 つの要素には JSON 文字列が含まれます。別の要素には JSON オブジェクトが含まれます。もう 1 つの要素には JSON 配列が含まれています。
SELECT JSON_ARRAY('a', JSON_OBJECT('name':'value', 'type':1), JSON_ARRAY(1, null, 2 NULL ON NULL))
結果
["a",{"name":"value","type":1},[1,null,2]]
例 7
次の例では、入力を変数または SQL 式として指定した JSON 配列を返します。
DECLARE @id_value nvarchar(64) = NEWID();
SELECT JSON_ARRAY(1, @id_value, (SELECT @@SPID));
結果
[1,"4BEA4F9F-D169-414F-AF99-9270FDB2EA62",55]
例 8
次の例では、クエリの行ごとに、JSON 配列を返します。
SELECT s.session_id, JSON_ARRAY(s.host_name, s.program_name, s.client_interface_name)
FROM sys.dm_exec_sessions AS s
WHERE s.is_user_process = 1;
結果
session_id | info |
---|---|
52 | ["WIN16-VM","Microsoft SQL Server Management Studio - Query",".Net SqlClient Data Provider"] |
55 | ["WIN16-VM","Microsoft SQL Server Management Studio - Query",".Net SqlClient Data Provider"] |
56 | ["WIN19-VM","SQLServerCEIP",".Net SqlClient Data Provider"] |
関連項目
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示