Você está na página 1de 3

Funes de comparao MySQL GREATEST e LEAST Ambos servem para comparar argumentos fornecidos.

GREATEST retorna o maior valor e o LEAST o menor. Esse comando no est restrito a nmeros, ele pode comparar strings tambm, neste caso ele considera a ordem alfabtica. Ex.:
SELECT LEAST(Paula, Amanda); > Amanda SELECT GREATEST(50,42,365,198,10,5); > 365

IF, IFNULL e ISNULL O IF recebe trs argumentos. O primeiro a condio, o segundo o valor de retorno caso essa condio seja verdadeira e o terceiro o retorno caso a condio no seja atendida. IF (condio/comparao, 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 condio 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 no for. Obs.: O operador = no funciona para esse tipo de teste, o valor retornado sempre ser falso. Ex.:
SELECT ISNULL(NULL); >1

INTERVAL Esse comando utiliza busca binria, que o torna mais rpido. Por isso, a sequncia de valores passados pra ele deve ser em ordem crescente. O primeiro parmetro (n) passado deve ser o valor a ser testado, logo a ps deve-se passar a sequncia 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 funo serve para comparar dois parmetros passados, verificando se so iguais, 1 menor que o 2 ou ao contrrio. O retorno acorre da seguinte forma: 0 se os parmetros 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)

Funo Case Mysql Assim como a funo CASE necessria quando estamos programando, ela tambm muito til em consultas SQL.Temos duas sintaxes para a funo: Sintaxe 1 - compara a expresso especificada (valor) com um conjunto de expresses (WHEN) e retorna o valor especificado (THEN). Se nenhuma comparao for vlida ele retorna o valor especificado determinado peloELSE. No obrigatria a utilizao do ELSE, caso ele no seja especificado e no seja encontrada nenhuma correspondncia entre os valores o retorno ser NULL.
CASE valor WHEN comparao THEN retorno (repetir para cada comparao) [ELSE retorno] END SELECT CASE contrato WHEN 1 THEN CLT WHEN 2 THEN PJ ELSE Invlido END; FROM programadores p;

Sintaxe 2 Determina seu retorno utilizado expresses booleanas. A primeira condio verdadeira determina o resultado. Caso nenhuma condio seja atendida, o retorno vem do ELSE e se ele no for especificado o resultado NULL.
CASE WHEN condition THEN retorno (repetir para cada condio) [ELSE retorno] END SELECT id_programador, CASE WHEN salario <= 1000 THEN Aumento 10% WHEN salario >1000 AND salario < 5000 THEN Aumento 5% ELSE Aumento 2% END FROM programadores p;

A utilizao de ambas as sintaxes no esto restritas apenas ao SELECT. Segue abaixo, a aplicao da segunda sintaxe na atualizao do salrio dos programadores.
UPDATE programadores SET salario = salario + CASE WHEN salario <= 1000 THEN ((salario*10)/100) WHEN salario >1000 AND salario < 5000 THEN ((salario*5)/100) ELSE ((salario*2)/100) END;

Você também pode gostar