PostgreSQL IN -lause

Postgresql In Lause



PostgreSQL:ssä on paljon lausekkeita, joita voit hyödyntää. IN-lause on yksi näistä lausekkeista, ja sillä on paljon etuja, kun ymmärrät sen käytön, erityisesti yhdistettynä WHERE-lauseeseen. IN-lause toimii pääasiassa SELECT-käskyn kanssa suodattaakseen, kuinka haluat kyselyn suoritettavan. Kun IN-lause suoritetaan, se tarkistaa määritetyn luettelon nähdäkseen, vastaako se ehtoja, ja tulostaa vastaavat arvot.

PostgreSQL IN -lauseen käytön ymmärtäminen

PostgreSQL:ssä käytät IN-lausetta WHERE-lauseen kanssa tulosteen suodattamiseen vertaamalla arvoluetteloa, ja tuloksena on Boolen arvo.

Tässä on käytettävä syntaksi:







arvo IN (arvo1, arvo2, arvo_n);

Annettu syntaksi ottaa arvon ja vertaa sen arvoihin arvo1, arvo2 ja arvo_n. Sitten se palauttaa Boolen, jos vastaavuus löytyy. Tarkistettavien arvojen luettelo voi olla mitä tahansa kirjaimellista tyyppiä, mukaan lukien merkkijonot ja kokonaisluvut. Lisäksi voit luoda alikyselyn, kuten SELECT-käskyn.



Keskustellaan erilaisista tavoista käyttää PostgreSQL IN -operaattoria.



1. Työskentely alikyselyn kanssa

Kuten aiemmin mainitsimme, arvo, jota vastaan ​​tarkistetaan, voi olla alikysely, joka poimii arvot kyselykäskyllä, kuten SELECT. Tällä tavalla voit tehdä kyselyn taulukosta tarkistaaksesi tietyn sarakkeen arvot. Käytämme esimerkkiämme seuraavaa taulukkoa:





Oletetaan, että haluamme tarkistaa kaikki asiakkaat, joiden 'order_id' voisi olla mikä tahansa kyselyosassa määritetyistä arvoista. Lisäämme tavoitearvon lauseemme ensimmäiseksi osaksi ja käytämme sitten WHERE-lausetta IN-lauseen kanssa kyselyn luomiseen.



Tältä kyselymme näyttää:

PostgreSQL tarkistaa 'asiakkaat'-taulukon sarakkeen 'order_id' ja palauttaa kaikki tietueet, joiden 'order_id' vastaa mitä tahansa suluissa määrittämiämme tietueita.

Ensin käytimme arvojen kokonaislukuluettelon tapausta. Voimme myös tarkistaa merkkijonoja vastaan. Huomaa, että jos kaikki määrittämäsi merkkijonot eivät vastaa kohdearvoa, mitään ei palauteta. Seuraava esimerkki sisältää joitakin merkkijonoja, joita ei ole taulukossamme. Tällaiset merkkijonot ohitetaan ja vain vastaavat merkkijonot näytetään seuraavassa tulosteessa:

2. Työskentely IN(SELECT)

Joskus arvoluettelon manuaalinen määrittäminen ei ehkä toimi. Voit valita SELECT-käskyn avulla noutaaksesi arvoluettelon taulukostasi ja tarkistaaksesi niiden avulla kohdearvoa. Lisäämällä seuraavan taulukon tietokantaamme, voimme yhdistää sen edelliseen 'asiakkaat' -taulukkoon tehdäksemme alikyselymme:

Oletetaan, että haluamme näyttää 'tilaukset'-taulukon tietueet vain, jos kohdearvo (order_id) on 'asiakkaat'-taulukossa. Tässä sarake 'customers.order_id' on arvoluettelomme, ja vertaamme sen arvoja 'orders.order_id' -sarakkeen arvoihin.

Tässä tapauksessa vain kolme merkintää vastaa hakua, ja sen saamme IN(SELECT) PostgreSQL-lauseemme lähtönä.

3. Työskentely NOT IN PostgreSQL -lauseen kanssa

Edellisen komennon avulla voimme näyttää muut arvot, jotka eivät vastaa kohdearvoa. Tätä varten teemme päinvastoin kuin IN-lause. Tästä syystä kumoamme komennon olla NOT IN.

Näin kirjoitamme uuden komentomme:

Huomaa, että saamme eri tulosteen kuin esimerkissä 2. Tämä johtuu siitä, että käytämme NOT IN -lausetta IN-lauseen sijaan.

Ihannetapauksessa voit lisätä NOT aina, kun haluat mitätöidä PostgreSQL IN -lauseen avulla saadut tulokset. Sovelluksia on loputtomasti. Kun haluat tarkistaa arvot ja nähdä ne täsmäävän nopeasti, IN-lause on paras ystäväsi.

Johtopäätös

IN-lause toimii WHERE-lauseen kanssa ja vertaa kohdearvoa arvoluetteloon. IN-lause palauttaa Boolen, joka vahvistaa, onko kohdearvo vastaavuus määrittämässäsi arvoluettelossa. Voit määrittää arvot literaaleina tai käyttää SELECT-käskyä luodaksesi käytettävän alikyselyn. Olemme antaneet kolme esimerkkiä siitä, kuinka voit käyttää PostgreSQL IN -lausetta. Toivottavasti tämä antoi sinulle käsityksen siitä, miten PostgreSQL IN -lauseen kanssa työskentelet.