データベースの接続先をPostgreSQLからSQLServerへの変更作業をしています。
PostgreSQL 8.1.9 --> SQLServer2005
ひとつ、変な現象が起きています。
移植前と移植後のDBで実行したSQLの検索結果が違いました。
SELECT a.ro_no, b.data_name
FROM table_1 a, table_2 b, table_3 c
WHERE b.data_name <> '' AND a.code_no = b.code AND a.user_id = c.user_id
ORDER BY a.ro_no, b.data_name;
ORDER句を細かく指定していないので、データ並びが違うのはしょうがないと思うのですが、件数が違うのはどういうことでしょうか?
データに規則性が無いので、どこがおかしいのか?という見当もつかない状態です。
データベースにデータを移植する際の注意点、上記の現象等の回避策等がありましたら教えてください。
宜しくお願いいたします。
No.2ベストアンサー
- 回答日時:
>SELECT
> a.ro_no,
> b.data_name
>FROM table_1 a,
> table_2 b,
> table_3 c
>WHERE b.data_name <> ''
> AND a.code_no = b.code
> AND a.user_id = c.user_id
>ORDER BY a.ro_no, b.data_name;
SQL Serverの照合順序はどうなっていますか?
これは比較の際に大文字小文字を区別するかどうかなどを指定します。
以下URL参照
http://msdn.microsoft.com/ja-jp/library/ms187582 …
複数表とジョインしているので、比較の設定が異なるせいな気がします。
ジョインで複数件数が返ってきている気がしますので、該当データを確認してください。
No.1
- 回答日時:
移行方法がわかりませんが、移行時に空文字がNULLに変わってしまったということはあり得ますか?
この回答への補足
javaで、データベースを移行するためのプログラムを作成しました。
カラムの型は、データベースに合わせて動的にカラム型を変更しています。
急いで作ったので、ミスはありました。空文字とNULLのチェックを行い、修正した記憶があります。
しかし検索結果が同じでした。件数も修正前のものと一緒でした。
SQLにIS NOT NULLの条件式を加えても、同じ結果でした。
おかしいと思うのは、SQLServer2005側で上記SQLを実行すると、PostgreSQLの検索結果より多い点です。
あと、移植後の各テーブルのレコード数は一致していることを確認しています。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- PHP htmlspecialcharsが機能していないです。 バグですか? 1 2022/04/05 01:22
- PHP php my adminより取り出したデータ表示 2 2022/06/15 11:56
- PHP PHP MySql ページング 2 2022/09/20 06:38
- PHP ここでの ②if($su_d<>"")の比較演算子 を使う理由は 1 2022/03/26 02:33
- PHP PostgreSQLからCSV形式でエクスポートする際にカラム内の改行をとる方法 1 2023/02/22 10:05
- MySQL 書籍の内容はまともでしょうか? 1 2023/01/22 03:07
- Ruby pandasでsqlite3にテーブル作成・追加・読み出しでindexの取り扱い方教えてください 5 2023/03/08 09:57
- PHP if(preg_match("/[^0-9]/",$gu_d)){意味を教えてください。 1 2022/05/06 05:37
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで最後の文字だけ置き...
-
同一のユーザー、同一商品のと...
-
マイクラPC版のコマンドで効率...
-
テーブル名を省略して「h.id」...
-
副問合せの書き方について
-
複数テーブルのGROUP BY の使い...
-
select文のwhere句に配列を入れ...
-
SQLで残高計算
-
クエリ表示と、ADOで抽出したレ...
-
php+MySQLでレコードが何行目か...
-
select文で特定のIDを抽出しupdate
-
MySQLでのバイナリデータ削除方法
-
sqlで、600行あるテーブルを100...
-
SQL Left Join で重複を排除す...
-
書籍の内容はまともでしょうか?
-
MySQLのint型で001と表示する方...
-
【MySQL】本当に困っているので...
-
SQLサーバから、項目の属性(型...
-
SELECT/別テーブルのレコード...
-
AUTO_INCREMENTのあるテーブル...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで最後の文字だけ置き...
-
SQL Left Join で重複を排除す...
-
副問合せの書き方について
-
SQLサーバから、項目の属性(型...
-
VIEWの元のテーブルのindexって...
-
select文のwhere句に配列を入れ...
-
selectした大量データをinsert...
-
センノシド異性体構造式
-
Unionした最後にGROUP BYを追加...
-
insertを高速化させたい
-
SQLにて特定の文字を除いた検索...
-
マイクラPC版のコマンドで効率...
-
ある条件の最大値+1を初番する...
-
inner joinをすると数がおかし...
-
sqlで、600行あるテーブルを100...
-
エクセルの関数について教えて...
-
Access パラメータクエリをcsv...
-
URL と行番号の指定
-
複数テーブルのGROUP BY の使い...
-
PL/SQLの変数について
おすすめ情報