と呼ばれるストアド関数と、列をadjust_status
持つテーブルがあります。users
status
select
adjust_status(status) as adjusted_status
from users
where adjusted_status > 0;
adjusted_status
存在しないとのことです。なんで?どうすればこれを修正できますか?
と呼ばれるストアド関数と、列をadjust_status
持つテーブルがあります。users
status
select
adjust_status(status) as adjusted_status
from users
where adjusted_status > 0;
adjusted_status
存在しないとのことです。なんで?どうすればこれを修正できますか?
エイリアスが定義されているのと同じレベルでエイリアスを参照することはできません。派生テーブルを使用する必要があります。
select *
from (
select adjust_status(status) as adjusted_status
from users
) t
where adjusted_status > 0;
これはもちろん拡張できます。
select *
from (
select adjust_status(u.status) as adjusted_status,
u.some_other_column,
f.yet_another_column
from users u
join foo f on f.some_id = u.some_other_id
) t
where adjusted_status > 0;