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
- a) um exemplo geral de caso
- B) usando o caso com um exemplo de função agregada
- 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
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
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