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

ランニング乗算を見つける方法

    あなたの方法はかなり合理的です。 nullif() の良いキャッチ sum() で 、 ところで。 elseis then の後にのみ計算されます 、else のコンポーネントは集計中に計算されます -- したがって log(0) エラーを返します。

    次のように、符号を計算する簡単な方法がいくつかあると思います:

    power(-1, sum(case when column1 < 0 then 1 else 0 end))
    

    または:

    (case when sum(case when column1 < 0 then 1 else 0 end) % 2 = 0 then 1 else -1 end)
    

    ただし、どちらのバージョンが「よりシンプル」かは意見の問題です。



    1. ORA-01858を参照してください:数値が予期されていた場所に非数値文字が見つかりました

    2. SQL Serverリストテーブル:すべてのテーブルを表示する方法

    3. 既存のテーブルに列を追加し、MSSQLServerで一意の番号を付けます

    4. SQLServerデータベースをあるサーバーから別のサーバーに移動するためのヒント-RajanSinghによるSQLチュートリアル