コンテンツにスキップ

値を、NULLを保持できる同等の値に変換します。

この関数を値に適用すると、その値がすでにNULL値を保持できるかどうかを確認します。値がすでにNULL値を保持できる場合、関数は何も変更せずにその値を返します。

一方、値がNULL値を保持できない場合、TO_NULLABLE関数は、その値がNULL値を保持できるように変更します。これは、NULL値を保持できる構造で値をラップすることで行われます。その結果、その値は以降NULL値を保持できるようになります。

func.to_nullable(x);
func.typeof(3), func.to_nullable(3), func.typeof(func.to_nullable(3))
func.typeof(3) | func.to_nullable(3) | func.typeof(func.to_nullable(3)) |
-----------------+---------------------+----------------------------------+
TINYINT UNSIGNED | 3 | TINYINT UNSIGNED NULL |
TO_NULLABLE(x);
引数 説明
x 元の値。

入力値と同じデータ型の値を返します。入力値がまだNULLを保持できない場合は、NULLを保持できるコンテナーでラップされます。

SELECT typeof(3), TO_NULLABLE(3), typeof(TO_NULLABLE(3));
typeof(3) |to_nullable(3)|typeof(to_nullable(3))|
----------------+--------------+----------------------+
TINYINT UNSIGNED| 3|TINYINT UNSIGNED NULL |