1.1 Lijst met voorwaardelijke functies

De SQL-taal heeft een lijst met functies die enigszins lijkt op de operator if-elsein switchJava.

Er zijn in totaal 4 van dergelijke functies:

Functies Beschrijving
1 GEVAL analoge schakelaar
2 ALS() Een analoog van de ternaire operator of als-anders
3 IFNULL() analoog van als-anders
4 NULLIF() analoog van als-anders

De laatste drie in SQL worden weergegeven als functies en CASEzijn een volwaardige operator, dus we zullen het helemaal aan het einde afzonderlijk bekijken.

1.2 ALS() functie

Een functie IF()in SQL lijkt enigszins op een ternaire operator in Java. In SQL-taal zijn er 3 parameters nodig en het ziet er als volgt uit:

IF (condition, true, false)

Er moeten drie uitdrukkingen aan de functie worden doorgegeven IF:

  • een toestand die op waarheid wordt getest;
  • een expressie die wordt geretourneerd wanneer de voorwaarde waar is;
  • een expressie die wordt geretourneerd als de voorwaarde onwaar is.

Hieronder zal ik enkele voorbeelden geven om het gemakkelijker te maken om te begrijpen hoe het werkt:

Verzoek Resultaat
1 KIES ALS( 1>2 , 2, 3) 3
2 SELECTEER ALS( 1<2 , 'ja', 'nee') 'Ja'
3 SELECT IF( STRCMP('test','test1' ), 'nee', 'ja') 'Nee'

1.3 Functie IFNULL() en NULLIF()

Er zijn ook twee wijzigingen van de functie IF().

De eerste wijziging is de functie IFNULL(). Er zijn slechts twee waarden nodig:

IFNULL (expression 1, expression 2)

Als expression1 niet gelijk is aan NULL, dan zal de functie expression1 teruggeven . Als expression1 IS NULL, dan zal de functie expression2 teruggeven . De essentie is de vervanging van de standaardwaarde wanneer het veld gelijk is aan NULL.

De tweede wijziging van de functie IFis de functie NULLIF(), er zijn ook twee waarden voor nodig:

NULLIF (expression 1, expression 2)

Het werkt averechts:

  • als expression1 gelijk is aan expression2 , dan retourneert de functie NULL;
  • als expressies niet gelijk zijn, wordt expression1 geretourneerd .