データベースに重複したメールがいくつかありますが、削除できません。 私はいくつかのフィールドを選択しますが、メールは重複しません。複数のフィールドを持つ別名を作成する方法
私はこのような要求をしている:私はこの要求を起動すると、メールで私の重複した値は、ここではすでに
SELECT
DISTINCT MAIL,
ID,
CIVILITE,
PRENOM,
NAME
FROM CONTACT WHERE CODE_PAYS = 'DE'
です。
どうすればいいですか?
更新:私はthisアプローチを試してみましたが、私はビューでそれを使用する必要があります。
ALTER VIEW ALL_VW_CONTACT_DE WITH SCHEMABINDING
AS
with cte as
(
select rn = row_number() over (partition by c.Mail Order By c.Id asc), c.Mail, c.Id, c.Civilite, c.Prenom, c.Name
from dbo.CONTACT c
where code_pays = 'DE'
)
select Mail, Id, Civilite, Prenom, Name
from cte
where rn = 1
しかし、これは動作しません、私はこのエラーを取得:
Cannot schema bind view 'MY_TABLE' because name 'CONTACT' is invalid for schema binding. Name must be in two-part format and an object cannot reference itself
期待される出力のサンプルデータを追加 –
すべてのフィールドにDistinctが適用されます。それはただの横だけではありません。したがって、1つの行だけが同じメール、ID、市民権、プレノーム、名前の組み合わせを持つようにします。 – litelite
フィールドメールにDISTINCTを追加することは可能ですか? – dutycorpse