O IF no MySQL é uma função de controle de fluxo, muito útil no nosso dia-a-dia.O IF retorna um valor numérico ou string, dependendo do contexto em que ela é usada.Neste artigo vou mostrar a sintaxe básica do IF e alguns exemplos práticos.

Sintaxe:

IF( expr1 , expr2 , expr3 )

Se expr1 é TRUE ( expr1 <> 0 e expr1 <> NULL ) então IF() retorna expr2 , senão ela retorna expr3 .

Exemplos:

mysql> SELECT IF(1>2,2,3);
-> 3

mysql> SELECT IF(1<2 data-blogger-escaped--="" data-blogger-escaped-no="" data-blogger-escaped-yes=""> 'Yes'

mysql> SELECT IF(STRCMP('test','test1'),'no','yes');
-> 'Não'

Fazer uma comparação por exemplo se o status de um registro está ativo ou inativo:

SELECT IF( tbl_status =0,’Inativo’,'ativo’) AS status FROM tb_tabela


Expressão IFNULL( expr1 , expr2 )

Se expr1 não é NULL , IFNULL() retorna expr1 , senão retorna expr2 . IFNULL() retorna um valor numérico ou string, dependendo do contexto em que ela é usada.

mysql> SELECT IFNULL(1,0);
-> 1

mysql> SELECT IFNULL(NULL,10);
-> 10

mysql> SELECT IFNULL(1/0,10);
-> 10

mysql> SELECT IFNULL(1/0,'yes');
-> 'Yes'

O valor resultante padrão de IFNULL( expr1 , expr2 ) é o mais "geral" das duas expressões, na ordem STRING , REAL , ou INTEGER .

Expressão NULLIF( expr1 , expr2 )

Retorna NULL se expr1 = expr2 for verdadeiro, caso contrário retorna expr1 . Isso é o mesmo que CASE WHEN expr1 = expr2 THEN NULL ELSE expr1 END .

mysql> SELECT NULLIF(1,1);
-> NULL

mysql> SELECT NULLIF(1,2);
-> 1

0 comentários:

Postar um comentário

 
Top