複数行返ってくるサブクエリを文字列に連結して取得するSQLまとめ
SELECT name FROM TABLE_NAME WHERE id IN(1, 2, 3)
みたいな複数行の結果セットが返ってくるクエリを、
複数行を結合した文字列にしつつ、サブクエリとして扱って、
SELECT column1, column2, (SELECT name FROM TABLE_NAME WHERE id IN(1, 2, 3)) AS names FROM ...
みたいにスバッと書きたいみたいなことが、たまにあります。
文字列への結合をプログラム側でやらなくて済むと嬉しいケースもあるし。
ただし、これはRDBMSによって、書き方が結構異なります。
なんで、アレっちゃアレなんですが、まとめてみました。
対象RDBMSはPostgreSQL、MySQL、Oracle。(というか他は知らない。。。)
ポン酢ポイントぶっ飛び
「何にでもポン酢をかけるbot」 で障害起こしちゃいました。。。
http://twitter.com/anything_ponzu
http://d.hatena.ne.jp/mb_strlen/20091008/1254937359
3行で
・ポン酢ポイントがクリアされる障害発生
・正確なポイントの復旧は不可能
・お詫びに新機能「ポン酢おみくじ」つけました