- 締切済み
OS/390 DB2 簡単なSQLで結果が異なるのですが
簡単なSQLなのですが、 バージョン違いが起因するのか、 導入の際のテーラーリング作業の違いなのか、 SQL結果が異なって困ってます。 状況は以下の通りです。 テーブルA 定義内容 項目 a b c ・ ・ ・ データ内容(aの値) +-+ |a| +-+ |1 | +-+ |2 | +-+ |3 | +-+ ~~~~~ ~~~~~ | | SQL SELECT * FROM テーブルA WHERE a = '1' OR a = '3' 実行結果 マシンA(DB2/UDB V6) +-+ |a| +-+ |1 | +-+ |3 | +-+ マシンB(DB2/UDB V7) +-+ |a| +-+ |1 | +-+ 因みにUDB以前のDB2・V5でも、 DB2/UDB V6と同じ結果です。 またaについてはindex項目ではありません。 この結果を同じにするにはどうしたらいいか、 ご存知の方がいらっしゃいましたら、 アドバイスをお願いいたします。 (直感で考えるとV6以前の結果のほうが 正しいと思うのですが・・・)
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
回答No.1
結果を同じくするという回答ではないのですが、 そのV7の動作は、おかしいです。 本当に、そういう動作をするなら バグ報告すべきです。
お礼
アドバイスありがとうございました。またお礼が大変遅くなってしまったことお詫び申し上げます。バグ報告についてはシステムが本稼動して何年も経過しているため、たとえメーカー側からPTFがUpされていても、それを適用するように助言するのを躊躇しています。ただIndex項目がWhere句の対象になっていた場合をまだ検証しておらず、大半のプログラム中のWhere句はIndex項目のため問題点が顕在化していないことも考えられるため、まずその場合を検証してみようと考えております。