例: 労働時間を調べるためのUnion演算の実行 - Teradata Database - Teradata Vantage NewSQL Engine - UNION演算子関数の例。

Teradata Vantage™ SQLデータ操作言語

Product
Teradata Database
Teradata Vantage NewSQL Engine
Release Number
16.20
Published
2019年3月
Language
日本語
Last Update
2019-10-29
dita:mapPath
ja-JP/fbo1512081269404.ditamap
dita:ditavalPath
ja-JP/fbo1512081269404.ditaval
dita:id
B035-1146
Product Category
Software
Teradata Vantage

プロジェクトに携わっている従業員一人当たりの工数を求めると想定します。さらに、プロジェクトに携わっていない従業員の名前も結果に含めるとします。

そのためには、次の例のような合併の操作を実行しなければなりません。

   SELECT Name, Proj_Id, Hours 
   FROM Employee, Charges 
   WHERE Employee.EmpNo = Charges.EmpNo
   UNION
   SELECT Name, Null (CHAR(8)), Null (DECIMAL(4,2)), 
   FROM Employee 
   WHERE EmpNo NOT IN 
   (SELECT EmpNo 
   FROM Charges
   )
   UNION
   SELECT Null (VARCHAR(12)), Proj_Id, Hours 
   FROM Charges 
   WHERE EmpNo NOT IN 
   (SELECT EmpNo 
   FROM Employee
   );

文の最初の部分で、EmployeeテーブルとChargesテーブルをEmpNoの列で結合します。2番目の部分で、Employeeテーブルにリストされているが、Chargesテーブルにはリストされていない従業員を求めます。3番目の部分で、Chargesテーブルにはリストされているが、Employeeテーブルにはリストされていない従業員を求めます。これにより、要求された情報がすべて応答に含まれます。