1.1 Списък на условни функции
Езикът SQL има списък от функции, които са донякъде подобни на оператора if-else
в switch
Java.
Има общо 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 .