SQL Tips: SQL-kyselyiden datan vertailu

Jyri Oksanen
Jyri Oksanen
15.3.2019

Välillä tulee tarve tehdä vertailua kahden SQL-kyselyn välillä. Silmämääräinen vertailu on hidasta ja epävarmaa. Ja EXCEPT ja INTERSECT lauseiden rakentaminen työlästä. Tähän tarkoitukseen monesti riittää tekstipohjainen rivien vertailu, joka löytyy mm. Notepad++ -ohjelmasta. Tämänkertaisessa vinkissä käydään läpi, kuinka Notepad++:n voi valjastaa datan vertailuun.

Notepad++ ohjelman voi ladata täältä: https://notepad-plus-plus.org/

Itse ohjelman lisäksi tarvitaan ”Compare” lisäosa. Varmista että Notepad++ asennuksessa on ”Plugins Admin” valittuna, tämä helpottaa lisäosien asentamista.

Asennuksen jälkeen avaa Notepad++ ja Plugins Admin ylävalikosta kohdasta: ”Plugins” -> ”Plugins Admin”. Etsi listalta "Compare" lisäosa ja laita ruksi lisäosan kohdalle. Sitten klikkaa ”Install”, niin lisäosa asentuu ohjelmaan.

Sen jälkeen Plugins-valikon alta löytyy Compare-valikko. Kannattaa kyseisestä valikosta laittaa päälle asetus ”Ignore Spaces”, niin vertailu ei ota huomioon eroja välilyöntien määrässä.

Vertailua varten avataan kaksi dokumenttia, jotka voi olla tallennettuja tiedostoja tai uusia tallentamattomia dokumentteja. Ja jotta vertailuun valitut tiedostot ei vaikuttaisi mielipuolisilta, niin kannattaa toinen vertailtava dokumentti siirtää viereiselle näkymälle, joka onnistuu, kun klikkaa välilehteä hiiren oikealla ja valitsee ”Move to other view”.

Sitten kopioi kyselyn tulokset molempiin dokumentteihin ja valitse ylävalikosta: ”Plugins” -> ”Compare” -> ”Compare”. Tai paina näppäinyhdistelmää: Ctrl + Alt + C

Joskus tuloksissa tulee paljon ”siirretyksi” tunnistettuja, sinisiä rivejä, tai vertailu ei muuten näyttänyt tunnistavan muutoksia oikein. Kannattaa silloin molempien dokumenttien rivit ensin järjestellä. Useimmiten muutenkin hyvä tapa tehdä rivien järjestely ennen vertailua. Järjestelyn voi tehdä valikosta: “Edit” -> “Line Operations” -> “Sort Lines Lexicographically Ascending”. Ja operaatio pitää tehdä molemmille verrattaville dokumenteille.

Notepad++ toimii kätevästi rivien vertailuun ja tuloksista näkee selkeästi, missä löytyy eroavaisuuksia. Suurten rivimäärien kanssa vertailun prosessointi voi alkaa kestämään pitkään ja ohjelmalta voi myös muisti loppua kesken, mutta alle 10 000 rivin vertailu onnistuu vielä hyvin.

phoneenvelopelocation-arrow linkedin facebook pinterest youtube rss twitter instagram facebook-blank rss-blank linkedin-blank pinterest youtube twitter instagram