Az SQL IIF funkció az SQL Server 2012-ben bevezetett új beépített logikai funkció. Az SQL Server IIF-et úgy tekinthetjük, mint az írás gyorsírási módját, ha más, és az esettanulmányokat.
az SQL Server IIF funkció három argumentumot fogad el. Az első argumentum a logikai kifejezés, amely igaz vagy hamis. Ha az IIF kifejezés igaz, akkor a második érv ennek eredményeként visszatér. Ellenkező esetben a harmadik argumentum kimenetként tér vissza., Lássuk az SQL Server IIF funkció szintaxisát:
SQL IIF logikai függvény szintaxisa:
az IIF szintaxisa az SQL Serverben a következő:
IIF (Boolean_Expression, True_Value, Flase_Value)
Ha az adott logikai kifejezés (vagy teszt állapot) igaz, akkor visszatér a True_Value. És ha hamis, akkor a False_Value visszatér.
SQL IIF összehasonlítva két egész
Ez a példa megmutatja az IIF funkció működési funkcionalitását az SQL Server
SELECT IIF(10 > 5, 'TRUE', 'FALSE') AS Result;
az alábbi képernyőképen megfigyelheti ezt a feltételt az IIF funkción belül (azaz.,, 10 > 5) igaz. Tehát az első állítás (vagy a második argumentum) visszatért a kibocsátás, ami IGAZ
SQL HA Összehasonlítjuk a két integer változó
ebben A példában fogjuk használni a HA függvény, hogy megtalálja-e az a személy jogosult szavazni, vagy nem.
az alábbi képernyőképen megfigyelheti, hogy a
- az első SELECT nyilatkozaton belül az IIF funkció belsejében lévő állapot (azaz 12 > 18) hamis., Tehát a második állítás (vagy harmadik argumentum)
- kimenetként tért vissza a második SELECT utasításon belül, az IIF függvényen belüli állapot (azaz 34 > 18) igaz. Tehát az első utasítás (vagy a második argumentum)
SQL IIF két karakterlánc összehasonlítása
ebben a példában az SQL Server IIF funkciót fogjuk használni a karakterláncadatok összehasonlításához. Itt a ” % ” helyettesítő karaktert használtuk a második SELECT utasítás belsejében., Tehát azt javaslom, hogy olvassa el az SQL LIKE cikket az SQL Serverben további információkért.
SQL beágyazott IIF példa
ebben a példában az SQL Server beágyazott IIF funkciót használjuk annak megállapításához, hogy a személy jogosult-e dolgozni vagy sem.
- először egy @age nevű egész változót deklaráltunk, amelyhez valamilyen értéket rendeltünk.
- az IIF () függvényen belül az első feltétel ellenőrzi, hogy az életkor kevesebb-e, mint 18., Ha ez a feltétel igaz, akkor visszaadja az első nyilatkozatot (vagy a második argumentumot) a vessző után, vagyis túl fiatal vagy ahhoz, hogy
- működjön, amikor az első feltétel sikertelen, visszaadja a második állítást (vagy a harmadik argumentumot). Az SQL Server beágyazott IIF használatával itt még egy feltételt ellenőrizünk (@age >= 18 és @age <= 60)., Ha ez a feltétel igaz, akkor a vessző után adja vissza az első értéket, amely jogosult a
- munkára, ha a beágyazott feltétel sikertelen, akkor a harmadik argumentumban hajtja végre az értéket, azaz túl öreg vagy a munkához.,
KIMENET 1: Kor = 12
Kor = 32
Kor = 65
SQL HA Dolgozik, NULL értékek
Az lenne a legjobb, ha óvatosak voltak, miközben dolgozik a NULL értékeket belül a HA függvény. A következő példasorozat segít megérteni a következményeket.,
SELECT IIF(10 > 5, NULL, NULL) AS Result;
a fenti képernyőképen látható, hogy hibát dob. Ha azt mondjuk, hogy az eredménykifejezés legalább egyikének (azaz a Boolean_Expression utáni második vagy harmadik argumentumnak) A NULL konstanstól eltérő kifejezésnek kell lennie., Változtassuk meg őket ennek megfelelően, és nézzük meg a
SELECT IIF(10 > 5, 'TRUE', NULL) AS Result1;SELECT IIF(10 > 5, NULL, 'FALSE') AS Result2;
SQL IIF NULL értékek opció 2
leküzdhetjük a felmerült hibákat a null állandók az IIF függvény segítségével a paramétereket.
DECLARE @a INT = NULL, @b INT = NULL SELECT IIF ( 10 > 5, @a, @b ) AS Result1;
HA adattípus a legmagasabb elsőbbséget
A HA függvény visszatér az adatok típus a legmagasabb rangban., A következő példából az eredmény az egész szám harmadik argumentuma (azaz 100) lesz, de az eredmény 100.00. Mivel az IIF funkció visszaadja a legmagasabb elsőbbségi adattípust.
SELECT IIF ( 15 > 50, 12.45, 100 ) AS Result;
kérjük, olvassa el, ha mást és CASE Statement cikkek.