Teradata-sub-queries

提供:Dev Guides
移動先:案内検索

Teradata-サブクエリ

サブクエリは、別のテーブルの値に基づいて、あるテーブルのレコードを返します。 別のクエリ内のSELECTクエリです。 内部クエリとして呼び出されるSELECTクエリが最初に実行され、結果が外部クエリによって使用されます。 その顕著な特徴のいくつかは-

  • クエリには複数のサブクエリを含めることができ、サブクエリには別のサブクエリを含めることができます。
  • サブクエリは重複レコードを返しません。
  • サブクエリが1つの値のみを返す場合、=演算子を使用して外部クエリで使用できます。 複数の値を返す場合は、INまたはNOT INを使用できます。

構文

以下は、サブクエリの一般的な構文です。

SELECT col1, col2, col3,…
FROM
Outer Table
WHERE col1 OPERATOR ( Inner SELECT Query);

次の給与表を検討してください。

EmployeeNo Gross Deduction NetPay
101 40,000 4,000 36,000
102 80,000 6,000 74,000
103 90,000 7,000 83,000
104 75,000 5,000 70,000

次のクエリは、給与が最も高い従業員番号を識別します。 内側のSELECTは集計関数を実行して最大のNetPay値を返し、外側のSELECTクエリはこの値を使用してこの値を持つ従業員レコードを返します。

SELECT EmployeeNo, NetPay
FROM Salary
WHERE NetPay =
(SELECT MAX(NetPay)
FROM Salary);

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

*** Query completed. One row found. 2 columns returned.
*** Total elapsed time was 1 second.
 EmployeeNo     NetPay
-----------  -----------
    103         83000