sql >> Database >  >> RDS >> Sqlserver

Hoe de IF-instructie werkt in SQL Server

De meeste (waarschijnlijk alle ) programmeertalen bevatten een vorm van de IF statement waarmee programmeurs voorwaardelijke code kunnen schrijven. Dat wil zeggen, code die alleen wordt uitgevoerd indien een bepaalde voorwaarde is waar.

Het is een heel eenvoudig concept. In principe gaat het als volgt:

"Als dit, doe dat dan."

De meeste talen noemen het gewoon IF , maar sommige hebben hun eigen draai aan de naam (bijvoorbeeld in ColdFusion/CFML heet het CFIF ).

In ieder geval doen ze in wezen hetzelfde.

In SQL Server (of beter gezegd, de programmeertaal T-SQL) heet het IF .

Voorbeeld

Hier is een eenvoudig voorbeeld om te demonstreren hoe de IF verklaring werkt.

IF 1 < 2 SELECT 'True';

Resultaat:

True

In dit geval is de te evalueren uitdrukking 1 < 2 . Het is waar dat 1 kleiner is dan 2, dus de SELECT statement is uitgevoerd en True is teruggestuurd.

Als de uitdrukking echter onwaar is, gebeurt er niets.

Het volgende voorbeeld laat dit zien:

IF 1 > 2 SELECT 'True';

Resultaat:

Commands completed successfully.

Alles wat SQL Server me vertelde, is dat de opdracht met succes is voltooid. Er is niets anders geretourneerd, omdat er niets anders is opgegeven.

De IF... ELSE-verklaring

In SQL Server is de IF statement wordt geleverd met een optionele ELSE , waarmee u een alternatief kunt bieden voor het geval de expressie false retourneert.

Daarom is het alsof je zegt:"ALS dit, doe dit, ANDERS, doe dit".

In dit geval kunnen we de optionele ELSE . toevoegen naar de IF statement, zodat het een IF... ELSE . wordt verklaring.

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

Resultaat:

False

Nu krijgen we ook een resultaat als de uitdrukking onwaar is.

Geneste IF-verklaringen

Een van de geweldige dingen van IF uitspraken is dat je ze kunt nesten. Dat wil zeggen, u kunt meer IF . toevoegen verklaringen in uw originele, en meer daarbinnen enz.

U kunt zoveel IF . nesten uitspraken zoals je wilt. Je wordt alleen beperkt door de hoeveelheid beschikbaar geheugen.

Hier is een voorbeeld van het nesten van een IF verklaring in een andere.

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

Resultaat:

Wealthy

IF... ELSE IF-verklaringen

Je kunt het ook gebruiken als een IF... ELSE IF uitspraak.

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

Resultaat:

Wealthy

  1. ID's van meerdere rijen invoegen in psycopg2

  2. Datum gebruiken in een controlebeperking, Oracle

  3. RazorSQL verbinden met Salesforce.com

  4. SQLAlchemy func.count op booleaanse kolom