- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:select文、asで定義した桁をwhereで使用可能?)
SELECT文でasで定義した桁をwhereで使用可能?
このQ&Aのポイント
- SELECT文でasで定義した桁をwhereで使用することはできますか?エラーが発生するのでしょうか?
- 質問のSQL文において、ASで定義した桁をWHERE句で使用することはできるのでしょうか?エラーが発生する場合、その原因は何でしょうか?
- SELECT文において、ASを使用して定義した桁をWHEREで利用することは可能でしょうか?もしエラーが発生する場合、その理由は何でしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
MySQL バージョン 4.1 以降であればサブクエリを使用 して SELECT * FROM ( SELECT ( IF(substring(p.TDATE,1,6) = '200407' ,p.PRICE,999999999) ) as 'MONTH1' from TBL_PRICE p ) where MONTH1<999999999 ; こんな感じでできると思います。
その他の回答 (1)
- potedora
- ベストアンサー率47% (66/140)
回答No.2
書籍は持ってないのでサイトのマニュアルです。 http://dev.mysql.com/doc/mysql/ja/SELECT.html
質問者
お礼
http://dev.mysql.com/doc/mysql/ja/Problems_with_alias.html ↑ここに記載がありますね。これで、安心して HAVINGを使用することができます。 どうもありがとうございました。
補足
potedora様、ご解答ありがとうございます。 大事なことを書き忘れましたが、 MySQLのバージョンは3.23.58です、すみません。 いろいろ試していたところ、 HAVING句にMONTH1<999999999という記述はOKでした。 HAVINGでは別名を使えて、WHEREでは使えない、 というのは一体どうしてでしょう?? 基本的なことなのでしょうけど…。マニュアルの どこを調べたらその辺の仕様がわかりますか?