1Z0-071 · Silver SQL
集合演算子の使用
★★★☆☆
Q14of 20
以下のSQL文で、何件のデータが返されますか。 — Silver SQL 問14
以下のSQL文で、何件のデータが返されますか。
SELECT UPPER('a'), 100 FROM dual
UNION
SELECT 'A', ROUND(TRUNC(101,-1)) FROM dual
UNION
SELECT INITCAP('a'), MOD(1100,1000) FROM dual;Choices選択肢
- A0件
- B1件正解
- C2件
- D3件
- Eエラー
Answer
正解は、Bです
Explanation解説
各SELECT文を評価していくと、すべて 'A' と 100 を返します。
1つ目のSELECT:
UPPER('a') = 'A'
100 = 1002つ目のSELECT:
'A' = 'A'
TRUNC(101, -1) = 100 (-1なので10の位で切り捨て)
ROUND(100) = 1003つ目のSELECT:
INITCAP('a') = 'A' (1文字目を大文字にする)
MOD(1100, 1000) = 100 (1100 ÷ 1000 の余り)3つすべてが ('A', 100) を返します。
UNION の特性: 重複行を自動的に削除します。そのため、結果として返るのは 1件のみ です。
集合演算子の比較:
| 演算子 | 動作 |
|---|---|
| UNION | 和集合(重複を排除、結果がソートされる) |
| UNION ALL | 和集合(重複を保持、ソートなしで高速) |
| INTERSECT | 積集合(両方に含まれる行) |
| MINUS | 差集合(左から右を引いたもの) |
もし UNION を UNION ALL に変えると、3件返ります。