- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:計算結果をCASE WHENで判断したとき、ELSEで計算結果をそのまま持ってくるSQL文法は?)
CASE WHENとELSEを使用したSQL文法について
このQ&Aのポイント
- SQL SERVER2005を使用して、CASE WHENを使った条件分岐を行いたい場合、ELSEに計算結果を取得する方法はありますか?
- CASE WHENで計算結果を判断した場合、ELSEの時に再度同じ計算式を書く必要はありません。
- 以下のSQLのように計算結果に一時的な別名をつけてCASE WHENに利用する方法もありますが、構文エラーとなります。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
case文を使う場合は、 case when 式1 then 0 else 式1 end のように、同じ式を書く必要があります。 計算結果がnullになるような場合なら、 coalesce(式1,0) といった関数を使う方法もありますが、今回は該当しませんね。 式に別名を付けた場合、そのクエリ内でなく、その外側のクエリでなら、別名で操作できます。 select EX1 from (select *,suuchi*2+1 as EX1 from tbl1) as x
お礼
chukenkenkou様、丁寧なご回答ありがとうございます。 前回(SQLServer2005で文字列の時刻の合計を出す方法)に引き続き、今回もご教示いただきまして、本当にありがとうございます。 CASE WHENでは式を2回記述する必要がありますか。 私も本日もう一度調べましたが、そのつど書く以外の回答を見つけられませんでした。 別名のつけ方も教えていただきましてありがとうございました。 試しましたが、既存のSQLに組み込むにはかなりの修正が必要になるため 今回は式を2回各方法を使うことにしました。 chukenkenkou様、何度も助けていただきまして、申し訳ございません。 あと丁寧な回答ありがとうございました。本当に感謝します。 以上です