Teradata-SELECTステートメント

SELECTステートメントは、テーブルからレコードを取得するために使用されます。

構文

SELECTステートメントの基本的な構文は次のとおりです。

SELECT 
column 1, column 2, ..... 
FROM  
tablename;

次の従業員テーブルについて考えてみます。

従業員番号 ファーストネーム 苗字 JoinedDate 部門番号 誕生日
101 マイク ジェームズ 2005年3月27日 1 1980年1月5日
102 ロバート ウィリアムズ 2007年4月25日 2 1983年3月5日
103 ピーター ポール 2007年3月21日 2 1983年4月1日
104 アレックス スチュアート 2008年2月1日 2 1984年11月6日
105 ロバート ジェームズ 2008年1月4日 3 1984年12月1日

以下は、SELECTステートメントの例です。

SELECT EmployeeNo,FirstName,LastName 
FROM Employee;

このクエリが実行されると、employeeテーブルからEmployeeNo、FirstName、およびLastName列がフェッチされます。

EmployeeNo            FirstName                       LastName 
-----------  ------------------------------  --------------------------- 
   101                   Mike                            James 
   104                   Alex                            Stuart 
   102                   Robert                          Williams 
   105                   Robert                          James 
   103                   Peter                           Paul

テーブルからすべての列をフェッチする場合は、すべての列を一覧表示する代わりに、次のコマンドを使用できます。

SELECT * FROM Employee;

上記のクエリは、employeeテーブルからすべてのレコードをフェッチします。

WHERE句

WHERE句は、SELECTステートメントによって返されるレコードをフィルタリングするために使用されます。条件はWHERE句に関連付けられています。WHERE句の条件を満たすレコードのみが返されます。

構文

以下は、WHERE句を使用したSELECTステートメントの構文です。

SELECT * FROM tablename 
WHERE[condition];

次のクエリは、EmployeeNoが101のレコードをフェッチします。

SELECT * FROM Employee 
WHERE EmployeeNo = 101;

このクエリを実行すると、次のレコードが返されます。

EmployeeNo          FirstName                      LastName 
----------- ------------------------------ ----------------------------- 
   101                 Mike                           James

ORDER BY

SELECTステートメントが実行されると、返される行は特定の順序ではありません。ORDER BY句は、任意の列でレコードを昇順/降順で配置するために使用されます。

構文

以下は、ORDERBY句を使用したSELECTステートメントの構文です。

SELECT * FROM tablename 
ORDER BY column 1, column 2..;

次のクエリは、employeeテーブルからレコードをフェッチし、FirstNameで結果を並べ替えます。

SELECT * FROM Employee 
ORDER BY FirstName;

上記のクエリを実行すると、次の出力が生成されます。

EmployeeNo         FirstName                      LastName 
----------- ------------------------------ ----------------------------- 
    104               Alex                           Stuart 
    101               Mike                           James 
    103               Peter                          Paul 
    102               Robert                         Williams 
    105               Robert                         James

GROUP BY

GROUP BY句はSELECTステートメントで使用され、同様のレコードをグループに配置します。

構文

以下は、GROUPBY句を使用したSELECTステートメントの構文です。

SELECT column 1, column2 …. FROM tablename 
GROUP BY column 1, column 2..;

次の例では、DepartmentNo列でレコードをグループ化し、各部門からの合計数を識別します。

SELECT DepartmentNo,Count(*) FROM   
Employee 
GROUP BY DepartmentNo;

上記のクエリを実行すると、次の出力が生成されます。

DepartmentNo    Count(*) 
------------  ----------- 
     3             1 
     1             1 
     2             3