« SQL Serverでの衝撃 | トップページ | 英会話(15回目) »

2006年7月21日 (金)

マルチカラムIN句は標準SQLでは無いらしい

SQL ServerがマルチカラムでのIN句をサポートしてないことに衝撃をうけたので、手元で確認できる範囲で、他のDBのサポート状況を調べてみました。

               
DBVERSION対応状況
Oracle 8i以上
PostgreSQL 8以上
MySQL 5.021
SQL Server 2000, 2005 ×
Access 2000 ×
Open Office Base 2.02 ×
DB2 Express Edition ver 9 ×

どうもマルチカラムのIN句は標準SQLではサポートしてない感じです。

しかし、みんなどうしているんだろう?

なにか良い技法があれば教えて欲しいです。

« SQL Serverでの衝撃 | トップページ | 英会話(15回目) »

デジタル・インターネット」カテゴリの記事

コメント

お久しぶりです。
面白そうな話題なので体が勝手にコメントを書き始めてしまいました。

標準SQLの仕様ってどこかに落ちてないんですかね?

http://savage.net.au/SQL/sql-92.bnf.html#xref-IN

がそうなのかな?
頑張ってBNFを読み解くと、

(colA, colB) IN
((valA, valB), (valC, valD))

みたいなのはダメですが、

(colA, colB) IN
(select colX, colY from T)

みたいなのは標準の範囲内っぽいですね。
(自信なし。)

あっ、

> なにか良い技法があれば教えて欲しいです。

全然回答になってなくてごめんなさい。

ぐはぁさん、お久しぶりです。

確かに subqueryはいけそうだなと思ってちょっと試してみたところ、SQL Server は駄目でしたが、DB2はOKでした。

ということで、標準SQLでは、マルチカラムのIN句はSUBQUEYは対応なのでしょうね。

なかなか勉強になります。

とはいえORACLEが楽で良いな。

(colA, colB) IN
(select colX, colY from T)
標準では確かこうだっけ?
exists ( select
T2.colX = T1.colA,
T2.colY = T1.colB
from T2)
または
exists ( select * from T2 where
T2.colX = T1.colA and
T2.colY = T1.colB )

構文はINに慣れていると見にくいですが、
where句が使用できるのがうれしい

なるほど、SUBQUERYを使うケースだと、そのようにIN句を書き換えることができますね。

ただ、マルチカラムIN句で指定するのは、マルチカラムPKが多いんですよね。

まだ確認ケースは少ないのですが、どうも素直にORで展開するのが良さそうな感じです。

やっぱりORなんでしょうか。

最近は接続プールなる便利なものがあるし、
一レコードごとに順次クエリを投げるのも良いかもしれません。

もしかしたらマルチカラムINが標準SQLでないのは、パラメータクエリにしづらいからかな?(適当)
サニタイジングって結構面倒だし

性能として問題なければ、一件ずつUPDATEでもいいんだけど、それだと時間がかかりすぎるんだよね。

バッチ実行などつかうと違うのかもしれませんが。

ちなみにマルチカラムのIN句もパラメータクエリーにできますよ。
ORACLEの場合も、内部的にはORで展開するだけですが、指定されたカラムにINDEXがあると効果的に処理してくれるのが嬉しいところかな。

弊店はスーパーコピー時計N品、
ロレックスコピー時計、パネライレプリカ時計、
シャネルレプリカ時計、ブライトリングレプリカ時計、
ウブロレプリカ時計、IWC コピー時計、
二年以内に人的破壊でない故障は無料で修理をします。
正規品と同等品質のコピー品を低価でお客様に提供します。
安心して購入して下さい。
自身が使用するだけでなく、入学、卒業、誕生日、結婚のお祝い等のギフトにもご利用ください。
今最も安いです【ロレックス時計コピー】スーパーコピー時計の新作情報満載!
ROLEX ロレックススーパーコピーN級品販売専門店!
激安ブランドのオーデマピゲ腕時計 https://www.cocoejp1.com/BannerLeft.aspx

コメントを書く

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

トラックバック


この記事へのトラックバック一覧です: マルチカラムIN句は標準SQLでは無いらしい:

« SQL Serverでの衝撃 | トップページ | 英会話(15回目) »

OGAにメール

2020年12月
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31    

スポンサード リンク

無料ブログはココログ