SQL Server IF…ELSE Ehtolauseke: T-SQL Select Query -esimerkki
Miksi tarvitset ehdollisia lausuntoja?
SQL-palvelimen ehdolliset käskyt auttavat sinua määrittämään eri logiikan ja toiminnot eri olosuhteille. Sen avulla voit suorittaa erilaisia toimintoja lausunnossa määritettyjen ehtojen perusteella. Todellisessa elämässä teet monia toimia jonkin muun toiminnan tai tilanteen tuloksesta riippuen.
Joitakin reaaliaikaisia esimerkkejä SQL-tapauskäskystä ovat:
- Jos huomenna sataa, suunnittelen reissua.
- Jos lentoliput ovat alle 400 dollaria kaupungistani, lähden lomalle Eurooppaan, muuten suosin jotain lähellä olevaa turistipaikkaa.
Tässä näet, että yksi toiminto, kuten edellä oleva Road trip, on ehdollisesti riippuvainen toisen toiminnan tuloksesta, joka on "sataako huomenna vai ei!"
Samoin MS SQL tarjoaa myös mahdollisuuden suorittaa T-SQL-käskyä ehdollisesti.
JOS… Muu lauseke SQL Serverissä
In MS SQL, TAI MUUTEN on eräänlainen Ehdollinen lausunto.
Mikä tahansa T-SQL-käsky voidaan suorittaa ehdollisesti käyttämällä TAI MUUTEN.
Alla oleva kuva selittää IF ELSE SQL-palvelimessa:

- Jos tilanne arvioi Totta, sitten T-SQL-käskyt, joita seuraa IF SQL-palvelimen ehto suoritetaan.
- Jos tilanne arvioi false, sitten T-SQL-käskyt, joita seuraa ELSE avainsana suoritetaan.
- Kun joko IF T-SQL-käskyt tai ELSE T-SQL-käskyt suoritetaan, muut ehdottomat T-SQL-käskyt jatkavat suorittamista.
IF… Muu Syntaksi ja säännöt SQL:ssä
Syntaksi:
IF <Condition>
{Statement | Block_of_statement}
[ ELSE
{Statement | Block_of_statement}]
Säännöt:
- Kunto pitäisi olla Boolen lausekeeli ehto antaa Boolen arvon arvioituna.
- JOS MUU -lausunto sisään SQL voi ehdollisesti käsitellä yhtä T-SQL-lausetta tai T-SQL-lauseiden lohkoa.
- Lausekkeen tulee alkaa avainsanalla BEGIN ja päättyä avainsanalla END.
- BEGIN- ja END-käskyt auttavat SQL-palvelinta tunnistamaan suoritettavan lausekkeen ja erottamaan sen muista T-SQL-käskyistä, jotka eivät ole osa IF…ELSE T-SQL-lohkoa.
- ELSE on valinnainen.
JOS…ELSE ainoalla numeerisella arvolla Boolen lausekkeessa.
Kunto: TOSI
IF (1=1) PRINT 'IF STATEMENT: CONDITION IS TRUE' ELSE PRINT 'ELSE STATEMENT: CONDITION IS FALSE'
Kunto: EPÄTOSI
IF (1=2) PRINT 'IF STATEMENT: CONDITION IS TRUE' ELSE PRINT 'ELSE STATEMENT: CONDITION IS FALSE'
Oletus: Oletetaan, että sinulla on taulukko "Guru99" kahdella sarakkeella ja neljällä rivillä alla olevan kuvan mukaisesti:
Käytämme "Guru99" taulukko muissa esimerkeissä
IF…ELSE muuttujan kanssa Boolen lausekkeessa.
Kunto: TOSI
DECLARE @Course_ID INT = 4 IF (@Course_ID = 4) Select * from Guru99 where Tutorial_ID = 4 ELSE Select * from Guru99 where Tutorial_ID != 4
Kunto: EPÄTOSI
DECLARE @Course_ID INT = 4 IF (@Course_ID != 4) Select * from Guru99 where Tutorial_ID = 4 ELSE Select * from Guru99 where Tutorial_ID != 4
JOS…MUUTA ja Begin End
Kunto: TOSI
DECLARE @Course_ID INT = 2 IF (@Course_ID <=2) BEGIN Select * from Guru99 where Tutorial_ID = 1 Select * from Guru99 where Tutorial_ID = 2 END ELSE BEGIN Select * from Guru99 where Tutorial_ID = 3 Select * from Guru99 where Tutorial_ID = 4 END
Kunto: EPÄTOSI
DECLARE @Course_ID INT = 2 IF (@Course_ID >=3) BEGIN Select * from Guru99 where Tutorial_ID = 1 Select * from Guru99 where Tutorial_ID = 2 END ELSE BEGIN Select * from Guru99 where Tutorial_ID = 3 Select * from Guru99 where Tutorial_ID = 4 END
JOS-lauseke kanssa Ei muuta
Voit käyttää IF-käskyä SQL:ssä ilman ELSE-osaa. Muista, että totesimme, että ELSE-osa on valinnainen. Esimerkiksi:
DECLARE @Course_ID INT = 2 IF (@Course_ID <=2) Select * from Guru99 where Tutorial_ID = 1
Se tulostaa seuraavat tiedot:
Väärän ehdon suorittaminen ei anna tulosta. Harkitse seuraavaa kyselyä
DECLARE @Course_ID INT = 2 IF (@Course_ID <=0) Select * from Guru99 where Tutorial_ID = 1
Tulos se
Sisäkkäiset IF…Muut lausunnot
Toisin kuin muut ohjelmointikielet, et voi lisätä ELSE IF -käskyä IF ELSE -ehtoon SQL:ssä. Tästä syystä voit sijoittaa IF ELSE SQL-kyselylausekkeisiin. Se esitetään alla:
DECLARE @age INT;
SET @age = 60;
IF @age < 18
PRINT 'underage';
ELSE
BEGIN
IF @age < 50
PRINT 'You are below 50';
ELSE
PRINT 'Senior';
END;
- Tässä esimerkissä koodi tulostetaan alaikäiseksi, jos @age-arvo on alle 18.
- Jos ei, ELSE-osa suoritetaan. ElSE-osassa on sisäkkäinen IF…ELSE.
- Jos @age-arvo on alle 50, tämä tulostaa Olet alle 50. Jos mikään näistä ehdoista ei täyty, koodi tulostuu Senior.
Yhteenveto
- Muuttujat ovat objekti, joka toimii paikkamerkkinä.
- Lausekkeen tulee alkaa avainsanalla BEGIN ja päättyä avainsanalla END.
- Else on valinnainen käytettäväksi IF… ELSE-käskyssä
- SQL IF ELSE -ehto on myös mahdollista sijoittaa toiseen IF…ELSE-käskyyn.










