Tässä blogissa keskustelemme SQL:n suodattamisesta. Selitämme ja näytämme esimerkkejä suodatusehtojen, kuten IN, NOT IN, LIKE ja NOT LIKE , hyödyntämisestä .
Näitä suodatusehtoja käytetään suodattamaan tulos datasta. Sen sijaan, että valitsisit ne useiden komentorivien avulla, sinun on helpompi käyttää tietoja.
Sisällysluettelo
IN- ja NOT IN -operaattoreiden käyttäminen tietojen suodattamiseen SQL:ssä
Tässä esimerkissä saamme tiedot tunnuksista 1, 5 tai 7. Useimmat ihmiset käyttävät OR-ehtoja .
Jos haluat saada dataa useammista tunnuksista, sinun on kirjoitettava useita TAI-ehtoja. Voit kuitenkin käyttää IN-operaattoria saadaksesi haluamasi tiedot sen sijaan, että käytät TAI-ehtoja monta kertaa.
Tämän suodatusehdon käyttäminen antaa meille saman tulosteen, joka on tiedot ID:stä 1, 5 tai 7. Päinvastoin, jos haluat poimia tiedot kaikista paitsi tunnuksista 1, 5 ja 7, käytä todennäköisesti OR-ehtoa ja <> (NOT EQUAL-operaattori).
Pitkien komentojen kirjoittamisen sijaan voimme käyttää NOT IN -operaattoria .
Tämän suodatusehdon avulla poimit tiedot paitsi tunnuksia 1, 5 ja 7.
Näiden ehtojen käyttäminen säästää paljon aikaa, ja samalla se on paljon parempi tapa kirjoittaa useiden TAI-ehtojen sijaan .
LIKE- ja NOT LIKE-operaattoreiden käyttäminen tietojen suodattamiseen SQL:ssä
LIKE ja NOT LIKE ovat samanlaisia kuin IN ja NOT IN -operaattorit. Itsensä sijaan se saa merkkijonon osan. Muista, että voit käyttää yleismerkkejä tai erikoismerkkejä, kuten prosentti (%) ja alaviiva (_).
% tarkoittaa , että se vastaa kaikkia tietueita annetun merkkijonon kanssa. Jos täsmäytetään 86 ja %, kahden ensimmäisen numeron tulee olla 86. Joten se löytää kaikki arvot, jotka alkavat 86:lla.
Mutta jos asetamme % 86:n molemmille puolille, se voi tulla mistä tahansa paikasta. Se voi tulla alusta, lopusta tai keskeltä. Joten se löytää kaikki arvot, joiden alussa, keskellä tai lopussa on 86.
Toisaalta _ vastaa vain yhtä merkkiä. Jos käytät arvoja 86 ja _ (86_), se etsii kaikkia arvoja, joiden 1. ja 2. sijainnissa on 86, kuten 860, 861, 862 ja niin edelleen ja niin edelleen. Jos käytät _ ja 86 (_86), se etsii arvoja 86 2. ja 3. sijainnista.
Tässä esimerkissä käytämme LIKE-operaattoria saadaksemme tiedot, joissa on merkkijono Mark . Meidän on yksinkertaisesti asetettava Mark % väliin, jotta saadaan tulos, joka sisältää Mark .
Vastaavasti, jos emme halua poimia tietoja, jotka sisältävät Mark , voimme käyttää NOT LIKE -operaattoria . Laita sitten Mark % väliin.
Tällä kertaa tuloste ei sisällä merkkiä .
SQL-suodatusehtojen käyttäminen SSMS:ssä
Ensin avataan (SQL Server Management Studio).
Seuraavaksi lataamme käyttämämme taulukon. Huomaa, että käyttämämme tietokanta on adventureworks2012, joka löytyy Microsoft Documentation -sivustolta .
Napsauta sitten Suorita .
Sen jälkeen näet tuloksen Tulokset-välilehdessä.
Sitten suodatamme tulosteen PersonType -tyypin perusteella . Käytämme select different -komentoa. Korostamme komennon ja napsautamme Suorita .
Sitten näet tulosteen, jossa näkyy PersonType .
Seuraavaksi poimimme tietueet henkilötyypistä IN tai SP tai SC . Käytämme tässä OR-ehtoa . Korostamme komennon ja napsautamme suorita .
Sitten näet, että rivien määrä on 19 254.
TAI-ehdon sijaan käytämme kuitenkin IN-operaattoria . Joten kirjoitamme komennon ja korostamme sen. Napsauta sitten suorita .
Tämä antaa meille saman määrän rivejä, joka on 19 254 .
Jos haluamme poimia kaikki tiedot paitsi IN , SP ja SC , käytämme NOT IN -operaattoria . Joten kirjoitetaan komento ja korostetaan se. Napsauta sitten suorita .
Tämä antaa meille kaikki tiedot lukuun ottamatta niitä, jotka ovat peräisin IN:stä , SP:stä ja SC:stä .
Seuraavaksi käytämme LIKE-operaattoria poimimaan Robin sisältävät tiedot FirstName- sarakkeesta . Käytä komentoa, korosta se ja napsauta Suorita .
Tämän seurauksena näemme, että tulos sisältää nyt Rob Etunimi- sarakkeessa . Koska käytimme %, se näyttää kaikki tiedot, joissa on merkkijono Rob .
Lopuksi käytämme NOT LIKE -operaattoria . Tässä esimerkissä haluamme poimia tiedot, jotka eivät sisällä Rob . Joten kirjoitamme koodin, korostamme sen ja napsautamme sitten Suorita.
Tämä antaa meille tulosteen, joka ei näytä tietueita, jotka sisältävät Rob Etunimi- sarakkeessa .
Johtopäätös
Yhteenvetona totean, että olemme keskustelleet SQL:n suodattamisesta IN-, NOT IN-, LIKE- ja NOT LIKE-operaattoreiden avulla. Olet oppinut niiden käytön ja erot sekä millaisissa tilanteissa voit käyttää niitä.
Nämä operaattorit ovat tehokkaampia kuin OR-ehdon käyttö . Voit käyttää näitä operaattoreita suodattamaan ja poimimaan haluamasi tiedot tietokannastasi pitkien komentojen sijaan, joten varmista, että käytät näitä suodatusehtoja oikein.
Kaikki parhaat,
Hafiz