SELECT (Transact-SQL)

データベースから行を取得し、1 つ以上のテーブルから 1 つ以上の行または列を選択できるようにします。SELECT ステートメントの全構文は複雑なので、主な句のみを以下にまとめます。

[ WITH <common_table_expression>]

SELECT select_list [ INTO new_table ]

[ FROM table_source ] [ WHERE search_condition ]

[ GROUP BY group_by_expression ]

[ HAVING search_condition ]

[ ORDER BY order_expression [ ASC | DESC ] ]

UNION、EXCEPT、INTERSECT 演算子をクエリ間で使用すると、クエリの結果を結合または比較して単一の結果セットにできます。

トピック リンク アイコンTransact-SQL 構文表記規則

構文

<SELECT statement> ::=  
    [WITH <common_table_expression> [,...n]]
    <query_expression> 
    [ ORDER BY { order_by_expression | column_position [ ASC | DESC ] } 
  [ ,...n ] ] 
    [ COMPUTE 
  { { AVG | COUNT | MAX | MIN | SUM } (expression )} [ ,...n ] 
  [ BY expression [ ,...n ] ] 
    ] 
    [ <FOR Clause>] 
    [ OPTION ( <query_hint> [ ,...n ] ) ] 
<query_expression> ::= 
    { <query_specification> | ( <query_expression> ) } 
    [  { UNION [ ALL ] | EXCEPT | INTERSECT }
        <query_specification> | ( <query_expression> ) [...n ] ] 
<query_specification> ::= 
SELECT [ ALL | DISTINCT ] 
    [TOP ( expression ) [PERCENT] [ WITH TIES ] ] 
    < select_list > 
    [ INTO new_table ] 
    [ FROM { <table_source> } [ ,...n ] ] 
    [ WHERE <search_condition> ] 
    [ <GROUP BY> ] 
    [ HAVING < search_condition > ] 

説明

SELECT ステートメントは非常に複雑なので、構文の構成要素と引数の詳細を句ごとに説明します。

SELECT ステートメント内の句の順序は重要です。オプションの句は省略できます。ただし、オプションの句を使用する場合は、適切な順序で指定する必要があります。

ユーザー定義関数に SELECT ステートメントを指定できるのは、関数にとってローカルな変数に値を代入する式がステートメントの選択リストに含まれる場合だけです。

サーバー名要素として OPENDATASOURCE 関数を使用する 4 部構成の名前は、SELECT ステートメント内にテーブル名を指定できる任意の場所で、テーブル ソースとして使用できます。

リモート テーブルに関係する SELECT ステートメントには、いくつかの構文の制約が適用されます。詳細については、「分散クエリを使用する場合のガイドライン」を参照してください。

SELECT ステートメントの処理順序

SELECT ステートメントの処理順序は次のとおりです。

  1. FROM

  2. ON

  3. JOIN

  4. WHERE

  5. GROUP BY

  6. WITH CUBE または WITH ROLLUP

  7. HAVING

  8. SELECT

  9. DISTINCT

  10. ORDER BY

  11. TOP

権限

固定サーバー ロール sysadmin、固定データベース ロール db_owner と db_datareader のメンバシップと、テーブルの所有権が必要です。sysadmin、db_owner、および db_securityadmin ロールのメンバ、およびテーブル所有者は、他のユーザーに権限を譲渡できます。

関連項目

参照