電子書籍の厳選無料作品が豊富!

ASP+PostgreSQLで検索画面を作成しています。
テーブルに名前、生年月日しかなく年齢をSQLの中で計算しています。
こんな感じです↓
To_Char(age(current_timestamp, To_date(birthday,'YYYYMMDD')),'yy') As genzai_age

「genzai_age」をwhere句で使用したいのですがas句なので利用できません。
「genzai_age」を検索条件にする何か良い方法はないでしょうか?
ご存知の方がいらっしゃいましたら、ご教授願ください。よろしくお願いします。

A 回答 (2件)

例えば、誕生日が入っているbirthday列から求めた現時点での年齢が、43~44才を検索するなら、以下のようなSQLが考えられます。



select * from t1
where extract(year from age(current_timestamp,birthday)) between 43 and 44
    • good
    • 0
この回答へのお礼

chukenkenkou様
早速のご回答ありがとうございます。

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

お礼日時:2007/05/08 09:39

#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
    • good
    • 0
この回答へのお礼

chukenkenkou様
度々のご回答ありがとうございます。

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

お礼日時:2007/05/08 09:43

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す