2つの列の差を計算しようとしていますが、列の1つにNULL値があり、SQLが無視していることがあります。NULL値を使用した計算
現在、私はこれを使用しています: if( "ソースインジケータ" = '合計OPEX'、( "Eur Amount" - "EUR Target")* -1、 "Eur Amount" - "EUR Target")as "Diff。"
これを計算する方法はありますか(OPEX値に注意してください)、期待される結果が得られますか?
おかげ
2つの列の差を計算しようとしていますが、列の1つにNULL値があり、SQLが無視していることがあります。NULL値を使用した計算
現在、私はこれを使用しています: if( "ソースインジケータ" = '合計OPEX'、( "Eur Amount" - "EUR Target")* -1、 "Eur Amount" - "EUR Target")as "Diff。"
これを計算する方法はありますか(OPEX値に注意してください)、期待される結果が得られますか?
おかげ
あなたはcase
とcoalesce()
を使用することができます。
(case when "source indicator" = 'Total OPEX'
then coalesce("Eur Amount", 0) - coalesce("EUR Target", 0) * -1
else coalesce("Eur Amount", 0) - coalesce("EUR Target", 0)
end)
case
の利点は、それはほとんどすべてのデータベースでサポートされているANSI標準のSQL、ということです。 if()
はデータベースに依存します。
これは素晴らしい動作しました。ありがとうゴードン。 – Kastriot
どちらのエンジンを使用していますか? –
'if'が非標準です... – JohnHC