9junho
GREATEST e LEAST
Ambos servem para comparar argumentos fornecidos. GREATEST retorna o maior valor e o LEAST o menor. Esse comando não está restrito a números, ele pode comparar strings também, neste caso ele considera a ordem alfabética.
Ex.:
SELECT LEAST(”Paula”, “Amanda”);
> Amanda
SELECT GREATEST(50,42,365,198,10,5);
> 365
IF, IFNULL e ISNULL
O IF recebe três argumentos. O primeiro é a condição, o segundo é o valor de retorno caso essa condição seja verdadeira e o terceiro é o retorno caso a condição não seja atendida.
IF(condição/comparação, retorno_verdadeiro, retorno_falso/else)
IF(expr1, expr2, expr3)
Ex.:
SELECT IF(10>5, “Maior”, “Menor”);
> Maior
IFNULL recebe dois argumentos, o primeiro é o campo testado e o segundo é o retorno caso a condição seja verdadeira, caso negativo ele retorna o valor do campo testado.
Ex.:
SELECT IFNULL(10, “NULL”);
> 10
ISNULL recebe o campo que será testado como argumento. Irá retornar 1 (verdadeiro) se o campo for NULL e 0 (false) se não for.
Obs.: O operador “= “não funciona para esse tipo de teste, o valor retornado sempre será falso.
Ex.:
SELECT ISNULL(NULL);
> 1
INTERVAL
Esse comando utiliza busca binária, que o torna mais rápido. Por isso, a sequência de valores passados pra ele deve ser em ordem crescente. O primeiro parâmetro (n) passado deve ser o valor a ser testado, logo a pós deve-se passar a sequência de intervalos(n1,n2…).
O retorno acontece da seguinte maneira:
0 – para n<n1
1 – para n<n2 e assim por diante…
-1 – se n for NULL
Ex.:
SELECT INTERVAL(9,1,5,10,20);
> 2
SELECT INTERVAL(NULL,1,5,10,20);
> -1
STRCMP
Essa função serve para comparar dois parâmetros passados, verificando se são iguais, 1º menor que o 2º ou ao contrário.
O retorno acorre da seguinte forma:
0 – se os parâmetros forem iguais
1 – se 1º > 2º
-1 – se 1º < 2º
Ex.:
SELECT STRCMP(’oi’,'olá’);
> -1 (menor)
SELECT STRCMP(’olá’, ‘oi’);
> 1 (maior)
SELECT STRCMP(’oi’, ‘oi’);
> 0 (igual)
Leia também:
Função Case Mysql