« デスクトップの潤い | トップページ | SHIROBAKO 3巻届きました »

2015.02.24

行値式を使おう

行値構成子(row value constructor)と書くと難しげであるが、使いどころによっては便利な機能である。
先日あるシステムで

SELECT ..... FROM hoge WHERE col1 || col2 = "hoge" || hoge2;

みたいなのがあって、こりゃいかんな、と。

SELECT ..... FROM hoge WHERE (col1,col2) IN ("hoge", hoge2);
という具合に書き換えが可能。 このケースではリテラルが入っているんで恩恵がわかりにくいが、INの中がサブクエリにできるとなれば話は別かな?
SELECT ..... FROM hoge WHERE (col1, col2) IN (SELECT hoge1, hoge2 FROM hogehoge);
あとは列挙的な組み合わせで、組み合わせ側がわかっているケースとか。
SELECT .... FROM hoge WHERE (col1,col2) IN ((1,100),(1,200),(2,200),(3,300));
どんなもんでしょうか?

|

« デスクトップの潤い | トップページ | SHIROBAKO 3巻届きました »

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/2022/61183105

この記事へのトラックバック一覧です: 行値式を使おう:

« デスクトップの潤い | トップページ | SHIROBAKO 3巻届きました »