テーブル内の重複する項目に一意の識別子を設定できるようにします。したがって、たとえば、以下の表では、SQL重複排除で重複を固有の識別子で埋め込む
PROJ00002492はPROJ00002492(それ自体はControlNumber列)のGlobalFamilDupIDを取得する必要があり、他のすべての重複は同じ値PROJ00002492を取得する必要があります。
PROJ00005876は値PROJ00005876(別名ControlNumber列)を取得する必要があります。
コード:
update mstr
SET
IsGlobalFamilyUnique = case when (rn > 1) then 0 else 1 end
from(
select
ControlNumber,
MD5hash,
IsglobalFamilyUnique,
GlobalFamilyDupID,
row_number() over (partition by [MD5Hash] order by ID asc) [RN]
from dbo.tblMaster
where NuixGuid = TopLvlGuid and IsGlobalFamilyUnique is null
)mstr
上記のコードは動作しますが、私はGlobalFamilDupID列を移入する方法を考えることができませんか?私は別のクエリでそれを行う必要がありますか?あなたは
FIRST_VALUE(ControlNumber) over (partition by [MD5Hash] order by ID
を使用して、SELECTに必要な値を追加することができます
あなたUPDATE内の値を使用できますか? –
エラーはありません。私のコードはこれまでのところ動作しています。私の質問に基づいてGlobalFamilyDupID列に値を設定する方法は考えられません。 – Sam
RN = 1のControlNumberレコードとMD5Hashレコードをすべて先頭に付け、更新ステートメント内のテーブル... – Tyron78