• 締切済み

SQLでのif的判定

質問があります。 スコア1 スコア2 スコア3 スコア4 スコア5 ボーナス 20     30     30     40    30     1 20     10     30     40    30     0 というような表があったとして、各スコアの合計が一定以上の物を抽出するにはどのようなSQL(where)を書けば良いのでしょうか。 where 150<(スコア1+スコア2+スコア3+スコア4+スコア5) で良いのでしょうか? また、ボーナスが1の時はスコア2を倍にして合計としたい場合、 where 150<((case ボーナス=1 then スコア1+スコア1 else スコア1)+スコア2+スコア3+スコア4+スコア5) とすれば良いのでしょうか? ご教授願えれば幸いです。

みんなの回答

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

where 150<(スコア1+スコア2+スコア3+スコア4+スコア5)*IF(ボーナス=1,2,1) とかでよいのでは?

climzonair
質問者

お礼

where 150<(スコア1+スコア2+スコア3+スコア4+スコア5)*IF(ボーナス=1,2,1) では、ボーナスが1の時スコア1~5の合計値の2倍になってしまいませんか? スコア1だけを2倍にしたいのですが。。。

すると、全ての回答が全文表示されます。

関連するQ&A