1.1 Lista de funções condicionais
A linguagem SQL possui uma lista de funções que são um pouco semelhantes ao operador if-else
em switch
Java.
Existem 4 dessas funções no total:
Funções | Descrição | |
---|---|---|
1 | CASO | interruptor analógico |
2 | SE() | Um análogo do operador ternário ou if-else |
3 | IFNULO() | análogo de if-else |
4 | NULLIF() | análogo de if-else |
Os três últimos em SQL são representados como funções e CASE
é um operador completo, portanto, vamos considerá-lo separadamente no final.
1.2 Função IF()
Uma função IF()
em SQL é um pouco semelhante a um operador ternário em Java. Na linguagem SQL, leva 3 parâmetros e fica assim:
IF (condition, true, false)
Três expressões devem ser passadas para a função IF
:
- uma condição que é testada quanto à verdade;
- uma expressão que é retornada quando a condição é verdadeira;
- uma expressão que é retornada quando a condição é falsa.
Abaixo darei alguns exemplos para facilitar o entendimento de como funciona:
Solicitar | Resultado | |
---|---|---|
1 | SELECIONE SE ( 1>2 , 2, 3) | 3 |
2 | SELECIONE SE( 1<2 , 'sim', 'não') | 'sim' |
3 | SELECT IF( STRCMP('teste','teste1' ), 'não', 'sim') | 'não' |
1.3 Função IFNULL() e NULLIF()
Há também duas modificações da função IF()
.
A primeira modificação é a função IFNULL()
. Leva apenas dois valores:
IFNULL (expression 1, expression 2)
Se expression1 não for igual a NULL
, a função retornará expression1 . Se expressão1 IS NULL,
, a função retornará expressão2 . A essência é a substituição do valor padrão quando o campo for igual a NULL
.
A segunda modificação da função IF
é a função NULLIF()
, também leva dois valores:
NULLIF (expression 1, expression 2)
Ele funciona na direção oposta:
- se expressão1 for igual a expressão2 , a função retornará
NULL
; - se as expressões não forem iguais, a expressão1 será retornada .