Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Funktionsweise der IF-Anweisung in SQL Server

Die meisten (wahrscheinlich alle ) enthalten Programmiersprachen eine Form des IF Anweisung, die es Programmierern ermöglicht, bedingten Code zu schreiben. Das heißt, Code, der nur if ausgeführt wird eine bestimmte Bedingung ist wahr.

Es ist ein sehr einfaches Konzept. Im Grunde geht das so:

„Wenn dies, mach das.“

Die meisten Sprachen nennen es einfach IF , aber einige haben ihre eigene Variante des Namens (in ColdFusion/CFML heißt er beispielsweise CFIF ).

In jedem Fall tun sie im Wesentlichen dasselbe.

In SQL Server (genauer gesagt in seiner Programmiersprache T-SQL) heißt es IF .

Beispiel

Hier ist ein einfaches Beispiel, um zu demonstrieren, wie der IF Anweisung funktioniert.

IF 1 < 2 SELECT 'True';

Ergebnis:

True

In diesem Fall ist der auszuwertende Ausdruck 1 < 2 . Es stimmt, dass 1 kleiner als 2 ist, also SELECT Anweisung ausgeführt wurde und True ist wurde zurückgegeben.

Wenn der Ausdruck jedoch falsch ist, wird nichts passieren.

Das folgende Beispiel demonstriert dies:

IF 1 > 2 SELECT 'True';

Ergebnis:

Commands completed successfully.

Alles, was SQL Server mir gesagt hat, ist, dass der Befehl erfolgreich abgeschlossen wurde. Es wurde nichts anderes zurückgegeben, da nichts anderes angegeben wurde.

Die IF… ELSE-Anweisung

In SQL Server ist das IF -Anweisung kommt mit einem optionalen ELSE , wodurch Sie eine Alternative angeben können, falls der Ausdruck falsch zurückgibt.

Daher ist es so, als würde man sagen „IF this, do this, ELSE, do this“.

In diesem Fall können wir den optionalen ELSE hinzufügen zum IF -Anweisung, sodass daraus ein IF... ELSE wird Aussage.

IF 1 > 2
       SELECT 'True';
ELSE 
       SELECT 'False';

Ergebnis:

False

Jetzt erhalten wir auch ein Ergebnis, wenn der Ausdruck falsch ist.

Verschachtelte IF-Anweisungen

Eines der großartigen Dinge an IF Anweisungen ist, dass Sie sie verschachteln können. Das heißt, Sie können weitere IF hinzufügen Anweisungen in Ihrem Original und mehr in diesen usw.

Sie können beliebig viele IF verschachteln Aussagen, wie Sie möchten. Sie sind nur durch die Menge an verfügbarem Speicher begrenzt.

Hier ist ein Beispiel für die Verschachtelung eines IF Anweisung in einer anderen.

DECLARE @bankBalance int = 123;
IF @bankBalance > 100
    IF @bankBalance > 150
        SELECT 'Rich!';
    ELSE
        SELECT 'Wealthy';
ELSE 
    SELECT 'Poor';

Ergebnis:

Wealthy

IF… ELSE IF-Anweisungen

Sie können es auch als IF... ELSE IF verwenden Erklärung.

DECLARE @bankBalance int = 123;
IF @bankBalance > 150
    SELECT 'Rich!';
ELSE IF @bankBalance > 100
    SELECT 'Wealthy';
ELSE
    SELECT 'Poor';

Ergebnis:

Wealthy