Teradata-select-statement
Teradata-SELECTステートメント
SELECTステートメントは、テーブルからレコードを取得するために使用されます。
構文
SELECTステートメントの基本的な構文は次のとおりです。
SELECT
column 1, column 2, .....
FROM
tablename;
例
次の従業員表を検討してください。
EmployeeNo | FirstName | LastName | JoinedDate | DepartmentNo | BirthDate |
---|---|---|---|---|---|
101 | Mike | James | 3/27/2005 | 1 | 1/5/1980 |
102 | Robert | Williams | 4/25/2007 | 2 | 3/5/1983 |
103 | Peter | Paul | 3/21/2007 | 2 | 4/1/1983 |
104 | Alex | Stuart | 2/1/2008 | 2 | 11/6/1984 |
105 | Robert | James | 1/4/2008 | 3 | 12/1/1984 |
以下は、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
注文する
SELECTステートメントが実行されると、返される行は特定の順序ではありません。 ORDER BY句を使用して、列のレコードを昇順/降順で並べます。
構文
以下は、ORDER BY句を使用したSELECTステートメントの構文です。
SELECT* FROM tablename
ORDER BY column 1, column 2..;
例
次のクエリは、従業員テーブルからレコードを取得し、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句はSELECTステートメントで使用され、同様のレコードをグループに配置します。
構文
GROUP BY句を使用した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