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 .