SQL Serverの列エイリアス名

(´д`;)うへぇ、SQL Serverでは列のエイリアスをgroup byで使うことはできないの??

select (HOGE + MOGE) as AA, SUM(POGE) as BB from NULLPO_TABLE group by AA;

「列名が無効」と言われてしまう。where句でもダメポだが、order byでは列エイリアス名が使用可能。うーん、プログラム的にはそうなる理由はなんとなく理解できるが、仕様としては中途半端だなぁ。

ANSI SQLの仕様ではエイリアスが使えなくてもよいらしいので、この仕様は標準準拠のようだ。MySQLやPostgreSQLでは普通に使えたので、どのRDBMSでも使えるものだと思っていたのだが、思い込みはよろしくないですのう。DB2やOracleではどうなんだろう…