簡単な答え:
- SELECTリスト内のエイリアスへの参照または
- エイリアス式
これまでに私が見つけた唯一のドキュメントは次のとおりです。
そのリンクには次のものがあります:
[2015年12月9日15:35]RoyLyseng ...元の決定のより長い背景があります:
WHERE句(さらに言えば、GROUP BY)のサブクエリでのエイリアスへの参照とは異なり、 SELECTリストでエイリアスへの参照を許可しない理由はありません(標準準拠を除く) 、クエリ実行の同じフェーズで使用できる必要があるためです。しかし、5.6でのサポートはかなり恣意的でした:
これを前提として:テーブルt1(a int、b int)を作成します
SELECTリストのエイリアスが無効です:
select a+b as c,c+1 from t1;
ただし、サブクエリ内では、cへの参照は有効です:
select a+b as c,(select c+1) from t1;
また、サブクエリはエイリアスの定義の後にある必要があります:
select (select c+1),a+b as c from t1;
したがって、SELECTリスト内のエイリアスへの参照のサポートは簡単に言えます。 かなりアドホックでした。それでも、古いソリューションの再実装を試みますが、この機能のサポートの明らかな穴をクリーンアップする試みはありません。ただし、WHERE句のサブクエリでエイリアスを参照することは再実装されません。
標準ドキュメントでこの機能を説明しているバグレポート以外のドキュメントをまだ探しています。しかし、これまでのところ運はありません。