Sybase データベースから Eclipse を使用してクエリを実行しました。重複するエントリを削除する必要がありますが、結果に INT と TEXT の型が混在しています。Sybase は TEXT フィールドを区別しません。すべての結果を保存してそれを Excel に貼り付けると、TEXT フィールドの一部が INT フィールドの列に流れ込み、Excel の重複の削除が困難になります。
クエリのエイリアスを作成し、一時テーブルを追加し、エイリアスから個別の INT 列の値を選択してから、今度は TEXT 値を含めてエイリアスを再度クエリすることを考えています。次に、データをエクスポートするときに、代わりに Word に保存します。次のようになります。
SELECT id, text
FROM tableA, TableB
WHERE (various joins here...)
AS stuff
CREATE TABLE #id_values
(alt_id CHAR(8) null)
INSERT INTO #id_values
(SELECT DISTINCT id
FROM stuff)
SELECT id, text
FROM stuff a
WHERE EXISTS (SELECT 1 FROM #id_values WHERE b.alt_id = a.id )
Excelでデータをより適切にフォーマットする方法があれば、db側でこのすべての操作を行う必要はありません.Excelインポートダイアログでさまざまなフォーマットを試しました.タブ区切り、スペース区切りでインポート最終結果。
追加情報: TEXT を VARCHAR に変換しましたが、ID ごとに最大 5 つのエントリを持つ新しい列が必要になる場合があります。ID -> TYPE は 1-many ですか? 個別は元のリストで機能しましたが、今度はすべての新しい列の値を 1 つの行に各 ID で表示する方法を理解する必要があります。新しい列は CHAR(4) です。
今、私の元の選択は次のようになります。
SELECT DISTINCT id, CONVERT(VARCHAR(8192), text), type_cd
FROM TableA, TableB
...etc
そして、id にアタッチされた type_cd ごとに複数の行を取得します。また、「b」は必要ないと思うことにも気付きました。*alt_id* の前のエイリアス。
また、クエリの形式 (TEXT または VARCHAR) に関係なく、Excel は引き続きテキストを id 行にブリードします。これは sql の問題ではなく、Excel や Eclipse の問題かもしれません。