スポンサーリンク

Snowflake「0での除算」の回避方法

記事内に広告が含まれています。

Snowflakeで「0での除算」というエラーが出ることがあります。

数値をゼロで割ろうとした場合に発生します。

このエラーを回避するためには、ゼロでの除算を防ぐために条件分岐を使うのが一般的です。

以下のような方法でエラーを回避できます。

NULLIF関数の使用

NULLIF 関数は、2つの値が等しい場合に NULL を返します。

これにより、ゼロでの除算を回避し、NULL値が代わりに返されます。

SELECT
    column1 / NULLIF(column2, 0) AS result
FROM
    table_name;

このクエリでは、column2 がゼロの場合に NULL を返し、ゼロでの除算を避けることができます。

CASE文の使用

CASE 文を使って、ゼロである場合には特定の値を返すように処理を行う方法もあります。

SELECT
    CASE
        WHEN column2 = 0 THEN NULL -- または0を返す、他のデフォルト値に変更可能
        ELSE column1 / column2
    END AS result
FROM
    table_name;

この方法では、column2 がゼロの場合に NULL を返し、それ以外の場合には通常の除算を行います。

ゼロでの除算が発生した場合に、デフォルト値(例: 0や特定の値)を返すようにすることも可能です。

SELECT
    CASE
        WHEN column2 = 0 THEN 0 -- デフォルト値
        ELSE column1 / column2
    END AS result
FROM
    table_name;

要件に応じて適切なものを選択するとよいと思います。

スポンサーリンク
SQL
著者SNS
タイトルとURLをコピーしました