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-elseem switchJava.
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 .
GO TO FULL VERSION