sql >> データベース >  >> RDS >> Oracle

Oracleでnull値の列を合計する

    NVL(値、デフォルト)はあなたが探している関数です。

    select type, craft, sum(NVL(regular, 0) + NVL(overtime, 0) ) as total_hours
    from hours_t
    group by type, craft
    order by type, craft
    

    Oracleには5つのNULL関連機能があります:

    1. NVL
    2. NVL2
    3. COALESCE
    4. NULLIF
    5. LNNVL

    NVL

    NVL(expr1, expr2)
    

    NVLを使用すると、クエリの結果でnull(空白として返される)を文字列に置き換えることができます。 expr1がnullの場合、NVLはexpr2を返します。 expr1がnullでない場合、NVLはexpr1を返します。

    NVL2

    NVL2(expr1, expr2, expr3)
    

    NVL2を使用すると、指定された式がnullかnullでないかに基づいて、クエリによって返される値を判別できます。 expr1がnullでない場合、NVL2はexpr2を返します。 expr1がnullの場合、NVL2はexpr3を返します。

    COALESCE

    COALESCE(expr1, expr2, ...)
    

    COALESCEは、式リストの最初のnull以外のexprを返します。少なくとも1つのexprはリテラルNULLであってはなりません。 exprのすべての出現がnullと評価された場合、関数はnullを返します。

    NULLIF

    NULLIF(expr1, expr2)
    

    NULLIFはexpr1とexpr2を比較します。それらが等しい場合、関数はnullを返します。それらが等しくない場合、関数はexpr1を返します。 expr1にリテラルNULLを指定することはできません。

    LNNVL

    LNNVL(condition)
    

    LNNVLは、条件の一方または両方のオペランドがnullである可能性がある場合に、条件を評価するための簡潔な方法を提供します。

    OracleSQL関数の詳細



    1. SQL ServerでのDENSE_RANK()のしくみ

    2. カーソルがOracleのレコードを返すかどうかを確認するにはどうすればよいですか?

    3. 特定の文字が文字列に出現する回数

    4. Oracleのテーブル/列/インデックス名が30文字に制限されているのはなぜですか?