CHECKSUM()
का उपयोग करें यह देखने के लिए कार्य करता है कि क्या डेटा समान है, हर एक कॉलम की जाँच किए बिना।
मान लें कि आपके पास कुछ ऐसा है:
create table #t (log_id int, c varchar(10), d int, log_date date)
insert #t values
(1, 'aaaaa', 1, '20140101'),
(1, 'aaaaa', 1, '20140102'),
(1, 'aaaaa', 1, '20140103'),
(1, 'bbbbb', 1, '20140104'),
(2, 'ccc', 10, '20140103'),
(2, 'cdd', 10, '20140105')
दूसरी और तीसरी पंक्ति में डेटा डुप्लीकेट हैं। डेटा को साफ करने के लिए, इस कथन को निष्पादित करें:
with x as (
select *, row_number() over(partition by log_id, checksum(log_id, c, d) order by log_date) as rn
from #t
)
delete x where rn > 1