WEB+DBの古本から
古いWEB+DBマガジンを読んでいたらSQL入門の記事があった。結構知らないことがあったのでメモしておく
ORの羅列をINで書く
OR a=1 OR a=2 OR a=3 は a in (1,2,3)
集約した結果に対してさらなる絞り込みをする、例えばGROUP BYの結果でCOUNT(*)があるとき、HAVING COUNT(*)=1 が使える。
IF分の羅列は CASE で書く
CASE
WHEN <評価式> THEN <式>
WHEN <評価式> THEN <式>
WHEN <評価式> THEN <式>
ELSE <式>
END
集合演算
和集合 SELCT * FROM tableA UNION SELCT * FROM tableB;
積集合 SELCT * FROM tableA INTERSECT SELCT * FROM tableB;
差集合 SELCT * FROM tableA EXCEPT SELCT * FROM tableB;