• ベストアンサー

検索条件の指定方法がわかりません。

ASP+PostgreSQLで検索画面を作成しています。 テーブルに名前、生年月日しかなく年齢をSQLの中で計算しています。 こんな感じです↓ To_Char(age(current_timestamp, To_date(birthday,'YYYYMMDD')),'yy') As genzai_age 「genzai_age」をwhere句で使用したいのですがas句なので利用できません。 「genzai_age」を検索条件にする何か良い方法はないでしょうか? ご存知の方がいらっしゃいましたら、ご教授願ください。よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

例えば、誕生日が入っているbirthday列から求めた現時点での年齢が、43~44才を検索するなら、以下のようなSQLが考えられます。 select * from t1 where extract(year from age(current_timestamp,birthday)) between 43 and 44

searching
質問者

お礼

chukenkenkou様 早速のご回答ありがとうございます。 このような方法があったんですね。 早速やってみましたが、やりたかった事が見事に実現できました。 大変勉強になりました。 本当にありがとうございました。

その他の回答 (1)

回答No.2

#1回答者です。 別名を条件式に指定したい場合は、「インラインビューで参照する形にする」といった方法があります。 select * from (select name,birthday,extract(year from age(current_timestamp,birthday)) as genzai_age from t1) as x where genzai_age between 43 and 44

searching
質問者

お礼

chukenkenkou様 度々のご回答ありがとうございます。 今まで、AS句で指定した別名を条件式には指定できないものと思い込んでいたのですが、このようなやり方があるのですね。 大変勉強になります。 今回は初めにご教授していただいた方法を利用しました。 今回ご教授していただいた方法も、今後利用させていただきたいと思います。 ありがとうございました。

関連するQ&A