知らなかった集合演算子のルール【ORACLE】
列名は同じじゃなくても良い
select
学生番号 as "01",
性別 as "02"
from
TT01_学生
union all
select
学生番号 as "03",
部活動コード as "04"
from
TT02_所属部活動
結果:
01 | 02 |
---|---|
2010B0162 | 1 |
2010B0163 | 1 |
2010B0164 | 2 |
データの型とカラム数が一緒の必要がある。無理やり数を合わせる場合は、nullを使おう。
ORDER BY句
基本的に集合演算子以降には使えない。
select 学生番号 as "01",
性別 as "02"
from TT01_学生
union all
select 学生番号 as "03",
部活動コード as "04"
from TT02_所属部活動
order by "03"
結果:ORA-00904: "03": invalid identifier
下記は可能。でも普通、列名は全て合わせるイメージだが。
select 学生番号 as "01",
性別 as "02"
from TT01_学生
union all
select 学生番号 as "03",
部活動コード as "04"
from TT02_所属部活動
order by "01"
ORDER句がないUNIONは1列目がASCとして並び替えられる
UNIONが遅い原因の一つになりそう。。
UNION寺のNULLは一つの値としてカウントされるため、NULLの重複も弾かれる
NULLのことはいつも片隅に留めておく必要がある。