選択リスト前節で示したように、SELECTコマンド中のテーブル式は、テーブルの結合やビュー、行の抽出、グループ化などにより中間の仮想テーブルを作ります。このテーブルは最終的に選択リストに渡されます。選択リストは、中間のテーブルのどの列が実際に出力されるかを決めます。選択リスト項目テーブル式が生成する全ての列を出力する*が最も簡単な選択リストです。なければ、選択リストは、カンマで区切られた(項4.2で定義された)評価式のリストです。以下のような列名のリストであってもかまいません。...a、b、cという列名は、FROM句で参照されるテーブルの実際の列名か、あるいは、項7.2.1.2で説明したような列名に対する別名です。グループ化されていなければ、選択リストで使用可能な名前空間はWHERE句と同じです。...複数のテーブルを使用する場合、特定のテーブルを列全てに付与する方が便利かもしれません。...(項7.2.2も参照してください。)任意の評価式が選択リストで使われる場合、返されるテーブルは、概念的には新たに仮想的な列を追加したものとなります。評価式は、それぞれの結果行で、その列参照を置換した行の値として一旦評価されます。句で指定されたテーブル式内の列を参照するものである必要はありません。それらは定数算術式でもかまいません。列ラベル選択リスト中の項目は後の処理のために名前を割り当てることができます。この場合の"後の処理"とは、オプションのソート指定やクライアントアプリケーションのことです(例えば、列ヘッダを表示するために使います)。...もし、ASを使った列名の指定が無かった場合、システムは、デフォルトの名前を割り当てます。単純な列の参照では、参照された列名となります。関数呼び出しでは、関数名となります。複雑な表現については、システムが汎用の名前を生成します。ここでの出力列の名前は、FROM句(項7.2.1.2を参照)で示したものとは異なります。パイプ処理で、同じ列を2度改名することが可能ですが、選択リストの中で選ばれた名前が渡されます。DISTINCT選択リストが処理された後、結果テーブルの重複行を削除の対象にすることもできます。これを指定するためには、SELECTの直後にDISTINCTキーワードを記述します。...(DISTINCTの代わりにALLキーワードを指定すると、全ての行がデフォルトで保持されます。)少なくとも1つの列の値が異なる場合、それら2行は別個とみなされます。値は、この比較において等しいとみなされます。任意の式を使用して、どの行が別であるかを決定することもできます。...expressionは、全ての行で評価される任意の評価式です。全ての式が等しくなる行の集合は、重複しているとみなされ、集合の最初の行だけが出力されます。DISTINCTフィルタにかけられる行の順序の一意性を保証できるよう問い合わせが列をソートしない限り、出力される集合の"最初の行"は予想不可能であることに注意してください。BYによるソートの後に行われます。ON句は、標準SQLではありません。結果が不定となる可能性があるため、好ましくないスタイルとみなされることもあります。BYとFROM中の副問い合わせをうまく使うことによりにこの構文を使わずに済みます。ON句は多くの場合非常に便利な代案となります。