2017-07-28 4 views
0

私はいくつかのデータを持つテーブルを持っています。そのうちの1つは "Domain"という列に格納された電子メールです。列の電子メールをトリムすると同時に重複を削除する方法(MSQL2017、UPDATE列)

"Domain"を更新する必要があります。メールを切断し、ドメインを残します(例:のようにクエリを実行すると[email protected])。

のでDomain列が290000を超える電子メールが内部に保存されており、いくつかのNULLのもある...
私は「またドン、私はドメインを探していますし、私は残っているデータを必要としないと@
含む言ったように重複したドメインリストまたはNULLの値がDomainカラムに必要です。

私が探しているのは、メールがNULLの値と重複ドメインのデータを削除すると同時にドメインに変換するようにトリミングするクエリです。

最後の結果は、一意のドメインと内部にNULLを持たない列Domainである必要があります。以下のような単純な

+0

「更新」と異なる結果を同時に表示することはどういう意味ですか?結果を表示したり、テーブルの内容を更新したりしますか? – Hybris95

+0

テーブルの内容を更新したい。 – Vissow

答えて

2

SELECT DISTINCT RIGHT(Email, LEN(Email) - CHARINDEX('@', email)) AS email_domain 
FROM table 
WHERE Email IS NOT NULL; 
2

あなたはユニークなドメインをしたい場合。 。 。

select distinct (case when domain like '%@%' 
         then stuff(domain, 1, charindex('@', domain) + 1, '') 
         else domain 
       end) 
from t 
where domain is not null; 
+0

テーブルの内容を更新したいと思っていましたか?これはちょうどデータ – Hybris95

+0

を表示している "私が探しているのは、クエリがNULL値と重複ドメインを持つデータを削除すると同時に電子メールをドメインに変換するトリムとなるクエリです。テーブルの内容を変更したい場合は、サンプルデータと希望の結果とともに別の質問をすることをお勧めします。 –

関連する問題