に最終更新
TRIM_ARRAY 関数
trim_array
説明
<size> 個の要素を <arr> の末尾から削除し、残りの要素の順序を保ちます。
構文
TRIM_ARRAY(<arr>, <size>)
パラメータ
| パラメータ | 説明 |
|---|---|
<arr> | 入力 ARRAY<T>。T は数値、真偽値、文字列、日付時刻、IP、複合型にできます。 |
<size> | 末尾から削除する要素数を指定する非負の BIGINT。<arr> の要素数を超えることはできません。 |
戻り値
ARRAY<T> を返します。これは cardinality(<arr>) - <size> 個の <arr> の先頭要素を含みます。
<size>が0の場合は入力配列をそのまま返します。<size>が配列の要素数と等しい場合は空の配列を返します。- どちらかの引数が
NULLの場合はNULLを返します。 - 配列内の
NULL要素は保持されます。 <size>が負、または配列の要素数を超える場合はエラーを返します。
使用例
末尾から二つの要素を削除する場合:
SELECT trim_array([1, 2, 3, 4], 2);
[1, 2]
サイズがゼロの場合、配列は変わりません:
SELECT trim_array(['a', 'b', 'c'], 0);
["a", "b", "c"]
すべての要素を削除する場合:
SELECT trim_array([1, 2, 3], 3);
[]
NULL 要素とネストした配列もサポートします:
SELECT trim_array([[1, NULL], [2, 3], [4, 5]], 1);
[[1, null], [2, 3]]
NULL 引数の場合は NULL を返します:
SELECT trim_array(CAST(NULL AS ARRAY<INT>), 0);
NULL
配列の要素数を超えるサイズを指定するとエラーになります:
SELECT trim_array([1, 2, 3], 4);
ERROR 1105 (HY000): size must not exceed array cardinality 3: 4
キーワード
ARRAY, TRIM, TRIM_ARRAY