プロジェクトOE1-0001に割り当てられた従業員の名前と、そのプロジェクト名、それに費やされた時間数、プロジェクトに割り当てられていない従業員の名前を選択するには、次の問合わせを使用します。
SELECT Name, Proj_Id, Hours
FROM Employee,Charges
WHERE Employee.Empno = Charges.Empno
AND Proj_Id IN ('OE1-0001')
UNION
SELECT Name, NULL (CHAR (8)), NULL (DECIMAL (4,2))
FROM Employee
WHERE Empno NOT IN
(SELECT Empno
FROM Charges);
この問合わせは、次の行を戻します。
| Name | Project Id | Hours |
|---|---|---|
| Aguilar J | ? | ? |
| Brandle B | ? | ? |
| Chin M | ? | |
| Clements D | ? | ? |
| Kemper R | ||
| Marston A | ? | ? |
| Phan A | ? | ? |
| Regan R | ? | ? |
| Russell S | ? | ? |
| Smith T | ||
| Watson L | ||
| Inglis C | 0E1-0001 | 30.0 |
| Inglis C | 0E1-001 | 30.5 |
| Leidner P | 0E1-001 | 10.5 |
| Leidner P | 0E1-001 | 23.0 |
| Moffit H | 0E1-001 | 12.0 |
| Moffit H | 0E1-001 | 35.5 |
この例では、2番目のSELECT文の列2と列3で、nullの式が使用されています。このnullの式は位置のマーカーとして使用されているので、この問合わせの両方のSELECT文が同じ数の式を持つことになります。