2012.
01.
29
00:50:24
別にSQLServerに限ったことじゃないのですけどね。
「UNION」と「UNION ALL」は
UNION → 重複行を除外
UNION ALL → そのままくっつける
ってな違いがあるそうです。
tbl1
1,A
2,B
3,C
tbl2
1,A
2,B
3a,C
とあった場合
select * from tbl1
UNION
select * from tbl2
の結果は
1,A
2,B
3,C
3a,C
になって
select * from tbl1
UNION ALL
select * from tbl2
の結果は
1,A
2,B
3,C
1,A
2,B
3a,C
になるんだそーです。
ちなみにUNION ALLの方が処理が少ない分
ちょっとだけ早いんですってさ。
五十歩百歩な気もしますけどね。
へー、そーなんだ。知らんかった。
「UNION」ってまず使わないもんなぁ。
過去にどーしよーもなくて「UNION ALL」を2回だけ使いましたが
自分で一から作ってる場合は「UNION」が必要そうになったら
設計の方を変えられないかまず考えます。
「UNION」使うときって色々気を付けなくちゃいけないから
逆にめんどくせっ(;´A`)って思っちゃうので。
何気に他人様の書いたコードでも
数年に一度くらいのペースでしか見ないので
結構嫌われ者なんですよね。
無駄に遅くなるイメージがある可哀想な奴です。
「UNION」と「UNION ALL」は
UNION → 重複行を除外
UNION ALL → そのままくっつける
ってな違いがあるそうです。
tbl1
1,A
2,B
3,C
tbl2
1,A
2,B
3a,C
とあった場合
select * from tbl1
UNION
select * from tbl2
の結果は
1,A
2,B
3,C
3a,C
になって
select * from tbl1
UNION ALL
select * from tbl2
の結果は
1,A
2,B
3,C
1,A
2,B
3a,C
になるんだそーです。
ちなみにUNION ALLの方が処理が少ない分
ちょっとだけ早いんですってさ。
五十歩百歩な気もしますけどね。
へー、そーなんだ。知らんかった。
「UNION」ってまず使わないもんなぁ。
過去にどーしよーもなくて「UNION ALL」を2回だけ使いましたが
自分で一から作ってる場合は「UNION」が必要そうになったら
設計の方を変えられないかまず考えます。
「UNION」使うときって色々気を付けなくちゃいけないから
逆にめんどくせっ(;´A`)って思っちゃうので。
何気に他人様の書いたコードでも
数年に一度くらいのペースでしか見ないので
結構嫌われ者なんですよね。
無駄に遅くなるイメージがある可哀想な奴です。
category:● SQLServer thema:システム開発 - genre:コンピュータ Posted by ササキマコト