SQL Server 2012 otettiin käyttöön uusi sisäänrakennettu looginen toiminto SQL-IIF. Se on pikakirjoitusmuoto CASE statement-logiikan tai IF-ELSE-logiikan kirjoittamisesta.

tutkimme SQL: n Tapausselostusta aiemmassa artikkelissani. Käytämme tapauskohtaista lausuntoa palauttaaksemme tuloksen määritetyn ehdon perusteella. Se on samanlainen kuin jos..Else … sitten statement arvioi ilmaisun ja palauttaa tuotoksen. Tapauslausunto on saatavilla lähes kaikissa SQL Serverin versioissa.

Let ’ s explore this SQL IIF function in this article.,

SQL IIF Lausunto yleistä

käytämme seuraavassa muodossa kirjoittaa Case-selvitys logiikka SQL-kyselyt

SELECT CASE Ilme, Kun lauseke1 Sitten Tulos1 Kun lauseke2 Sitten Tulos2 … MUU Tulos LOPUSSA

voidaan kirjoittaa tämä koodi käyttää SQL-IIF lausunto syntaksi seuraavasti.

IIF(boolean_expression, true_value, false_value)

  • Boolean_expression: ensimmäinen parametri SQL IIF lausunto on boolen lauseke., Sen pitäisi olla voimassa oleva boolen lauseke muuta saamme poikkeus
  • True_Value: Jos boolean_expression on TOTTA, se palauttaa arvon määritetyn true_value parametri
  • False_Value: Jos boolean_expression on EPÄTOSI, se palauttaa arvon määritetyn false_value parametri

tutkitaan SQL-IIF lausunto esimerkkejä käyttäen.

Esimerkki 1: SQL IIF lausunto vertaamalla kokonaisluku arvoja

seuraavassa esimerkissä määritelty Boolen lauseke return False ( 2>3 ei ole TOTTA)., Due to this, it returns the value specified in the false_value parameter.

1
SELECT IIF(2 > 3, ’TRUE’, ’FALSE’ )

Similarly, if the condition is TRUE (5>3 is TRUE) so it returns the value of true_value parameter.,

1
SELECT IIF(5 > 3, ’TRUE’, ’FALSE’ )

Example 2: SQL IIF statement with variables

In the following example, we specified two integer variables and assigned values. We use variables for comparison in the IIF statement.,

1
2

DECLARE @A INT = 80, @B INT = 70
SELECT IIF(@A >= @B, ’PASS’, ’FAIL’ )

The specified condition (80>70) is TRUE, so it returns the value PASS.,

Esimerkki 3: SQL IIF lausunnon vertaa kaksi merkkijonoa

seuraavassa esimerkissä, haluamme vertailla string dataa SQL-IIF lausunto. Haluamme tietää henkilön, joka pitää henkilön nimen perusteella.,

1
2

DECLARE @Person Varchar(100) = ’Raj’
SELECT IIF(@Person=’Raj’,’Likes Apple’,’NA’)

We can specify multiple conditions in SQL IIF statement as well.,i>

  • Else all other persons like orange
  • 1
    2

    DECLARE @Person Varchar(100) = ’Raj’
    SELECT IIF(@Person in(’Raj’, ’Mohan’),’Likes Apple’,’Likes Orange’)

    The query should return Likes Orange if the person name is not in the IN clause., Seuraavassa esimerkissä person Vinay ei ole muuttujassa @Person, joten se palauttaa arvon väärälle lausekkeelle.

    Esimerkki 4: Sisäkkäisiä SQL-IIF lausunto

    Voimme käyttää Sisäkkäisiä SQL-IIF lausunto sekä määrittää useita ehtoja,

    tässä SQL-IIF-funktio, se tarkistaa ensin kunnossa, ja jos ehto on TOSI, se palauttaa arvon. Meidän tapauksessamme se on väärä (henkilö Vinay ei vastaa Raj).se tarkistaa toisen ehdon ja palauttaa tulokset, jos se on totta.,

    Jos mikään ehdoista on totta, se palauttaa oletuksena väärä viesti.

    Esimerkki 5: SQL IIF julkilausuma taulukon sarake

    edellisissä esimerkeissä, me joko määrittää arvot suoraan IIF lausunto tai määritelty muuttujat se. Yleensä haluamme käyttää sitä olemassa olevien tietojen kanssa SQL-taulukossa. IIF-lausumaa voi käyttää myös taulukkopalstalla.,

    seuraavassa esimerkissä, haluamme tietää toimittajan nimi PurchaseOrders taulukko WideWorldImporters tietokantaan.

    Jos toimittajan nimi ei ole olemassa tietyn toimittajan tunnus, se palauttaa määritetyn vääriä arvo SQL IIF lausunto.

    Esimerkki 6: SQL IIF-lause taulukon sarakkeen ja yhteenlaskettu toiminto

    Esimerkki 7: SQL IIF selvitys ja tiedot tyyppi edelle

    – Meillä voi olla eri tietotyyppejä varten tulokset., Jos meillä on eri tietotyypit määritelty tulos ehtoja, SQL Server antaa korkein etusija tietojen tyyppi. Seuraavassa esimerkissä väärä ehto(11>19), tulos on false_value argumentti, eli 100. Sen pitäisi olla e kokonaisluku-tietotyyppiä, mutta saamme tuotos 40.0 koska toinen argumentti float (2.6) on korkea edelle kuin kokonaisluku.,

    1
    SELECT IIF(11 > 19, 2.6, 40)

    You can check the data type precedence in the following image

    Example 8: SQL IIF with NULL values

    We should be careful in NULL values inside the SQL IIF function.,

    1
    2
    3

    SELECT
    IIF(100 > 99, NULL, NULL) AS Result;

    We cannot specify NULL in both the true and false arguments. We get the following error message.,

    Msg 8133, Taso 16, Valtio, 1, Rivi 1 vähintään yksi tulos ilmaisuja TAPAUKSESSA erittely on oltava ilmaus muita kuin NULL vakio.

    virheviestissä näet, että se antaa tietoa TAPAUSMÄÄRITTELYSTÄ, mutta käytimme SQL IIF-toimintoa. Tarkastelemme tätä seuraavassa esimerkissä.

    sinun tulee määrittää vähintään yksi todellinen tai väärä argumentti.,

    1
    2

    SELECT
    IIF(100 > 99, ’Hello’, NULL) AS Result;

    The similarity between SQL IIF statement and CASE Statement

    In the introduction of SQL IIF Statement, we mentioned that it is a shorthand form of writing CASE statement logic or IF-ELSE logic., Kyllä, se on totta. Sisäisesti SQL Server muuntaa lausuman TAPAUSILMOITUKSEKSI ja suorittaa. Voimme tarkistaa sen kyselyn toteutussuunnitelman avulla.

    suorita kysely esimerkistä 6 todellisella toteutussuunnitelmalla.

    varsinaisen toteutussuunnitelman, katso ominaisuuksia Laskea Skalaari. Näet, että se toteuttaa jutun lausunnon sisäisesti.

    Johtopäätös

    tässä artikkelissa, me tutkia SQL IIF Lausunto siitä, että on uusi tapa kirjoittaa CASE-selvitys liittyviä ehtoja., Se on saatavilla SQL 2012 alkaen. Tätä kannattaa tutkia, jotta tämä olisi tuttua. Jos sinulla on kommentteja tai kysymyksiä, voit jättää ne kommentit alla.,

    • Tekijä
    • Viimeisimmät Viestit
    Koska MCSA-sertifioitu ja Microsoft Certified Trainer Gurgaon, Intia, jolla on 13 vuoden kokemus, Rajendra toimii useita suuria yrityksiä, keskittyen suorituskyvyn optimointi -, seuranta -, korkean käytettävyyden ja katastrofista palautumisen strategioiden ja täytäntöönpanon., Hän on kirjoittanut satoja arvovaltainen artikkeleita SQL Server, Azure, MySQL, Linux, Power BI -, Performance tuning, AWS/Amazon RDS, Git, ja niihin liittyvien teknologioiden, että on katsellut yli 10m lukijat tasalla.
    Hän on luoja yksi suurimmista ilmainen online-kokoelmia artikkeleita yhden aiheen, hänen 50-osainen sarja, SQL Server Aina Saatavuus Ryhmiä. Perustuu hänen panoksensa SQL Server yhteisö, hän on tunnustettu kanssa eri palkintoja, kuten arvostetun ”Best author of the year” jatkuvasti vuonna 2020 ja 2021 klo SQLShack.,
    Raj on aina kiinnostunut uusista haasteista, joten jos tarvitset konsultointi apua tahansa aiheesta, jota käsitellään hänen kirjoituksissaan, hän voi olla tavoitettavissa rajendra.gupta16@gmail.,com
    Näytä kaikki viestit Rajendra Gupta

    Uusimmat viestit Rajendra Gupta (katso kaikki)
    • Suorittaa pienet ja suuret versio päivitykset AWS RDS SQL Server – tammikuu 29, 2021
    • Käyttöönotto AWS-RDS-PostgreSQL-instanssit – 27. tammikuuta 2021
    • Siirtyminen paikalliseen SQL-tietokantoihin AWS RDS SQL Server käyttämällä AWS DMS – 25. tammikuuta 2021

    Vastaa

    Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *