私は1つのテーブル(TABLE_NAME)を持つTeradataシステムで作業しています。ここにはemail_address_table
というカラムがあります。私は電子メールアドレスの列を持っているExcelシートを持っています。SQL:行内の電子メールアドレスを比較し、見つからない行を検索する
私がしようとしているのは、email_address_table
がExcelシートにある電子メールアドレスの一部ではないテーブル内のすべての行を取得することです。
私が知る限り、Teradata
はExcelシートで直接動作することはできませんので、私はJavaでコードを書いています。ここで列から個々の電子メールアドレスを取得して、直接SQLクエリで使用します。ですから、基本的には、クエリは、私が必要とする構文に基づいて、Javaプログラムで形成されるでしょう。
入力:
+---------+----------+---------------------------------+
| id | name | Date |
+---------+----------+---------------------------------+
| 1 | [email protected] | 21.03.2015 |
| 2 | [email protected] | 22.04.2015 |
| 3 | [email protected] | 22.03.2015 |
| 4 | [email protected] | 23.03.2015 |
| 5 | [email protected] | 23.03.2015 |
Excelシート:期待
+---------+-----------+
| name |
+---------+-----------+
| [email protected] |
| [email protected] |
| [email protected] |
| [email protected] |
| [email protected] |
クエリ:
select * from TABLE_NAME where email_address does not match any in {"email1","email2","email3"...."email-n"}
はまた、TABLE_NAMEは約8万のエントリが含まれており、Excelシートは、4000の周りに含まれていますメールアドレス。この検索に最適な方法はありますか?
どうすればこの問題を解決できますか。私は既にExcelの電子メールをペーストをコピーしてJavaで直接書式を変更できるプレーンストリングとして持っています。ありがとうございました。
ありがとうございます。私はすでにそれを引き起こしました。 table_nameには約80,000の電子メールアドレスがあり、4000を超えるExcelシートがあるので、これを最適化する方法はありますか。 –
これはExcelシートでなければなりませんか?追加のテーブルにデータをインポートした場合、 'WHERE email_address NOT IN(SELECT email_address FROM additional_table)'を持つことができます。 – Aconcagua
問題は、JavaプログラムをTeradataに直接接続できないことです。私は一時的なテーブルに400のエントリを追加するために挿入クエリが必要です。私はすでに電子メールアドレスを持っています... –