IF -THEN-ELSE-ELSEIF
Last updated
Was this helpful?
Last updated
Was this helpful?
Drie mogelijkheden:
Op basis van het resultaat van een IF-THEN-... statement kan je één of meerdere SQL statements uitvoeren en een aangepast resultaat op basis van de ingebouwde conditie weergeven.
Syntax:
Toegepast op onze voobeelddatabase en meer bepaald op de tabel Liedjes
.
In bovenstaand voorbeeld creëren we een IN
en OUT
parameter voor de stored procedure if_then
.
De pLiedjesId
wordt gebruikt om het Id van het liedje op te geven, hetgeen dan verder in de stored procedure wordt gebruikt.
De output-parameterpResult
wordt dan weer gebruikt om een waarde weer te geven buiten de stored procedure.
Het sql-statement gaat de lengte van het liedje met het Id
dat bepaald is door de IN-parameter pLiedjesId
bewaren in de lokale variabele song_length
.
Vervolgens gaan we op basis van een IF-THEN
constructie nagaan wat de inhoud van de lokale variabele song_length
is en ingeval deze groter is dan 80 gaan we de OUT-parameter
de waarde 'Lange duurtijd' geven.
Om de stored procedure correct op te roepen, hanteren we volgend statement.
Het resultaat is:
Als je evenwel een id zou opgeven waarbij de lengte kleiner is dan 80, dan wordt er niets weergegeven.
Syntax:
We voorzien nu dat wanneer de duurtijd meer dan 80 seconden bedraagt, er wordt weergegeven dat het een lange duurtijd betreft, in het andere geval wordt normale duurtijd weergeven.
Onderstaand voorbeeld laat zien hoe de IF-THEN-ELSE moet worden voorzien.
Hieronder het resultaat voor een id met een lengte van minder dan 80 sec.
Syntax:
We voorzien nu dat wanneer de duurtijd meer dan 80 seconden bedraagt er wordt weergegeven dat het een lange duurtijd betreft, in het geval de duurtijd tussen de 70 en 80 ligt wordt normale duurtijd weergeven en in het geval dit minder dan 70 bedraagt wordt korte duurtijd getoond.
Onderstaand voorbeeld laat zien hoe de IF-THEN-ELSEIF-ELSE moet worden voorzien.
Hieronder het resultaat voor een id met een lengte van meer dan 70 sec. en minder dan 80 sec.
Mocht je wel wensen dat er te allen tijde een resultaat wordt weergegeven, dan moet je minstens met de of de werken, zie verder.
De procedure omschreven in het voorgaande deel wordt uitgebreid.
In het geval dat de waarde groter is dan 80 sec., dan bekom je hetzelfde positieve resultaat als bij het onderdeel hierboven.
De procedure omschreven in het voorgaande deel wordt uitgebreid.