1.1 Списък на условни функции

Езикът SQL има списък от функции, които са донякъде подобни на оператора if-elseв switchJava.

Има общо 4 такива функции:

Функции Описание
1 СЛУЧАЙ аналогов превключвател
2 АКО() Аналог на троичния оператор or if-else
3 IFNULL() аналог на if-else
4 NULLIF() аналог на if-else

Последните три в SQL са представени като функции и CASEе пълнопequals оператор, така че ще го разгледаме отделно в самия край.

1.2 Функция IF().

Функция IF()в SQL е донякъде подобна на троичен оператор в Java. На езика SQL той приема 3 параметъра и изглежда така:

IF (condition, true, false)

Три израза трябва да бъдат предадени на функцията IF:

  • състояние, което се тества за истинност;
  • израз, който се връща, когато conditionто е вярно;
  • израз, който се връща, когато conditionто е невярно.

По-долу ще дам няколко примера, за да разберете по-лесно How работи:

Заявка Резултат
1 ИЗБЕРЕТЕ АКО ( 1>2 , 2, 3) 3
2 SELECT IF ( 1<2 , 'да', 'не') "да"
3 SELECT IF( STRCMP('test','test1' ), 'no', 'yes') 'не'

1.3 Функция IFNULL() и NULLIF()

Има и две модификации на функцията IF().

Първата модификация е функцията IFNULL(). Отнема само две стойности:

IFNULL (expression 1, expression 2)

Ако израз1 не е equals на NULL, тогава функцията ще върне израз1 . Ако израз1 IS NULL, тогава функцията ще върне израз2 . Същността е замяната на стойността по подразбиране, когато полето е равно на NULL.

Втората модификация на функцията IFе функцията NULLIF(), тя също приема две стойности:

NULLIF (expression 1, expression 2)

Работи в обратна посока:

  • ако израз1 е equals на израз2 , тогава функцията връща NULL;
  • ако изразите не са равни, тогава се връща израз1 .