Caso PostgreSQL

Resumo: neste tutorial, você vai aprender a usar a expressão condicional de caso PostgreSQL para formar consultas condicionais.

a expressão PostgreSQL CASE é a mesma que a expressão IF/ELSE em outras linguagens de programação. Ele permite que você adicione lógica if-else à consulta para formar uma consulta poderosa.

uma vez que CASE é uma expressão, você pode usá-la em qualquer lugar onde uma expressão pode ser usada.,SELECT, WHERE, GROUP BY, e HAVING cláusula.

a expressão CASE tem duas formas: a forma geral e a forma simples.

1) expressão geral do caso PostgreSQL

o seguinte ilustra a forma geral da declaração CASE :

Code language: SQL (Structured Query Language) (sql)

nesta sintaxe, cada condição (condition_1, condition_2…) é uma expressão booleana que devolve tanto true como false.

quando uma condição é avaliada em false, a expressão CASE avalia a próxima condição de cima para baixo até encontrar uma condição que se avalia em true.

se uma condição for avaliada para true, a expressão CASE devolve o resultado correspondente que segue a condição. Por exemplo, se o condition_2 for avaliado em true, a expressão CASE devolve o result_2. Além disso, ele imediatamente pára de avaliar a próxima expressão.

no caso de todas as condições avaliarem para false, a expressão CASE devolve o resultado (else_result) que segue a palavra-chave ELSE. Se omitir a cláusula ELSE, a expressão CASE devolve NULL.

vamos dar uma olhada na tabela film da base de dados de amostras.

a) um exemplo geral de caso

suponha que você quer rotular os filmes pela sua duração baseada na seguinte lógica:

  • se o lengh for inferior a 50 minutos, o filme é curto.
  • se o comprimento for superior a 50 minutos e inferior ou igual a 120 minutos, o filme é médio.
  • se o comprimento for superior a 120 minutos, o filme é longo.

para aplicar esta lógica, você pode usar a expressão CASE na declaração SELECT como se segue:

Code language: PHP (php)

resultado:

Note que colocamos uma coluna alias duration após a expressão CASE.

B) usando o caso com um exemplo de função agregada

suponha que você quer atribuir segmentos de preço a filmes com a seguinte lógica:

  • se a taxa de aluguel é 0,99, o filme é econômico.
  • se a taxa de aluguer for 1,99, o filme é massa.
  • se a taxa de aluguer for 4.99, o filme é premium.

e você quer saber o número de filmes que pertencem à economia, massa e premium.

neste caso, você pode usar o CASE expressão para construir a consulta da seguinte forma:

Code language: SQL (Structured Query Language) (sql)

O resultado da consulta é o seguinte:

neste exemplo, usamos a expressão CASE para retornar 1 ou 0 se a taxa de aluguel cair em cada segmento de preço. E aplicamos a função SUM para calcular o total de filmes para cada segmento de preço.

2) Simples PostgreSQL CASO a expressão

PostgreSQL fornece uma outra forma de o CASE expressão chamado de simples formulário da seguinte maneira:

Code language: SQL (Structured Query Language) (sql)

O CASE primeiro avalia o expression e compara o resultado com o valor de cada( value_1, value_2, …) no WHEN cláusulas seqüencialmente até encontrar o jogo.

uma vez que o resultado do expression é igual a um valor (valor 1, Valor 2, etc.) numa cláusula WHEN, o CASE devolve o resultado correspondente à cláusula THEN.

se CASE não encontrar nenhuma correspondência, devolve a else_result na sequência do valor ELSE, ou NULL se o ELSE não estiver disponível.

a) exemplo simples de expressão de caso PostgreSQL

a seguinte declaração usa a expressão CASE para adicionar a descrição de notação ao resultado:

Code language: PHP (php)

neste exemplo, usamos um simples CASE expressão para comparar a classificação do film tabela com alguns valores literais, como G, PG, NC17, PG-13 e voltar a correspondente classificação descrição.

B) Usando um simples PostgreSQL CASO de expressão com função de agregação exemplo

a instrução A seguir usa CASE expressão com o SUM função para calcular o número de filmes em cada classificação:

Code language: PHP (php)

neste tutorial, você aprendeu como usar o PostgreSQL CASE expressão para formar consultas complexas.

  • este tutorial foi útil ?
  • YesNo

Deixe uma resposta

O seu endereço de email não será publicado.