Kaip pašalinti pasikartojančias eilutes iš SQL serverio lentelės?



Išbandykite Mūsų Instrumentą, Kaip Pašalinti Problemas

Kurdami objektus „SQL Server“, turime laikytis tam tikros geriausios praktikos. Pavyzdžiui, lentelėje turėtų būti pirminiai raktai, tapatybės stulpeliai, grupuoti ir neklasterizuoti rodikliai, duomenų vientisumas ir našumo apribojimai. SQL serverio lentelėje neturėtų būti pasikartojančių eilučių, atsižvelgiant į geriausią duomenų bazės projektavimo praktiką. Tačiau kartais turime susidurti su duomenų bazėmis, kuriose nesilaikoma šių taisyklių arba kai yra galimos išimtys, kai šios taisyklės yra tyčia apeinamos. Nors mes laikomės geriausios praktikos pavyzdžių, galime susidurti su tokiomis problemomis kaip pasikartojančios eilutės.



Pavyzdžiui, importuodami tarpines lenteles taip pat galėtume gauti tokio tipo duomenis ir norėtume ištrinti nereikalingas eilutes prieš jas iš tikrųjų įtraukdami į gamybos lenteles. Be to, neturėtume palikti galimybės dubliuoti eilučių, nes informacijos dublikatas leidžia daug kartų tvarkyti užklausas, neteisingus ataskaitų rezultatus ir dar daugiau. Tačiau jei stulpelyje jau yra pasikartojančių eilučių, turime laikytis konkrečių metodų, kad išvalytume pasikartojančius duomenis. Pažvelkime į keletą būdų šiame straipsnyje pašalinti duomenų dubliavimą.



Lentelė, kurioje yra pasikartojančios eilutės



Kaip pašalinti pasikartojančias eilutes iš SQL serverio lentelės?

SQL serveryje yra keli būdai, kaip tvarkyti pasikartojančius įrašus lentelėje, atsižvelgiant į konkrečias aplinkybes, pvz .:

Eilių dublikatų pašalinimas iš unikalios indekso SQL Server lentelės

Galite naudoti indeksą, jei norite klasifikuoti pasikartojančius duomenis į unikalias indeksų lenteles, tada ištrinti pasikartojančius įrašus. Pirma, mes turime sukurti duomenų bazę pavadinimu „test_database“, tada sukurkite lentelę „ Darbuotojas “Su unikaliu indeksu, naudojant žemiau pateiktą kodą.

NAUDOTI pagrindinį GO Sukurti duomenų bazę bandyti , [miestas] varchar (250) NULL, [adresas] varchar (500) NULL CONSTRAINT Pagrindinis_Key_ID PRIMARY RAKTAS (ID))

Išvestis bus tokia, kaip nurodyta toliau.



Lentelės „Darbuotojas“ kūrimas

Dabar įterpkite duomenis į lentelę. Taip pat įterpsime pasikartojančias eilutes. „Dep_ID“ 003,005 ir 006 yra pasikartojančios eilutės su panašiais duomenimis visuose laukuose, išskyrus tapatybės stulpelį su unikaliu rakto indeksu. Vykdykite žemiau pateiktą kodą.

NAUDOTI [test_database] EITI ĮDĖTI Į darbuotoją (Dep_ID, vardas, el. Pašto adresas, miestas, adresas)