Resumo: neste tutorial, você aprenderá sobre o SQLite
CASE
expressão para adicionar a lógica condicional a uma consulta. O SQLite
CASE
expressão avalia uma lista de condições e retorna uma expressão com base no resultado da avaliação. O
CASE
expressão é semelhante ao IF-THEN-ELSE
declaração em outras linguagens de programação. Você pode usar o
CASE
expressão em qualquer cláusula ou instrução que aceite uma expressão válida. Por exemplo, você pode usar o CASE
expressão em cláusulas como WHERE
, ORDER BY
, HAVING
, SELECT
e declarações como SELECT
, UPDATE
e DELETE
. SQLite fornece duas formas de
CASE
expressão:simples CASE
e pesquisou CASE
. SQLite simples CASE
expressão
O simples
CASE
expression compara uma expressão a uma lista de expressões para retornar o resultado. O seguinte ilustra a sintaxe do simples CASE
expressão. CASE case_expression
WHEN when_expression_1 THEN result_1
WHEN when_expression_2 THEN result_2
...
[ ELSE result_else ]
END
Code language: SQL (Structured Query Language) (sql)
O simples
CASE
expressão compara a case_expression
para a expressão aparece no primeiro WHEN
cláusula, when_expression_1
, por igualdade. Se a
case_expression
é igual a when_expression_1
, o simples CASE
retorna a expressão no THEN
correspondente cláusula, que é o result_1
. Caso contrário, o simples
CASE
expressão compara a case_expression
com a expressão no próximo WHEN
cláusula. Caso não haja
case_expression
corresponde à when_expression
, o CASE
expressão retorna o result_else
no ELSE
cláusula. Se você omitir o ELSE
cláusula, o CASE
expressão retorna NULL. O simples
CASE
expressão usa avaliação de curto-circuito. Em outras palavras, ele retorna o resultado e para de avaliar outras condições assim que encontra uma correspondência. Simples CASE
exemplo
Vamos dar uma olhada nos
customers
tabela no banco de dados de exemplo. Suponha que você tenha que fazer um relatório dos grupos de clientes com a lógica de que se um cliente se localiza nos EUA, esse cliente pertence ao grupo doméstico, caso contrário o cliente pertence ao grupo estrangeiro.
Para fazer este relatório, você usa o simples
CASE
expressão no SELECT
declaração da seguinte forma:SELECT customerid,
firstname,
lastname,
CASE country
WHEN 'USA'
THEN 'Domestic'
ELSE 'Foreign'
END CustomerGroup
FROM
customers
ORDER BY
LastName,
FirstName;
Code language: SQL (Structured Query Language) (sql)
Tente
SQLite pesquisou CASE
expressão
O
CASE
pesquisado expressão avalia uma lista de expressões para decidir o resultado. Observe que o simples CASE
expressão apenas compara por igualdade, enquanto o CASE
pesquisado expressão pode usar qualquer forma de comparação. O seguinte ilustra a sintaxe do
CASE
pesquisado expressão. CASE
WHEN bool_expression_1 THEN result_1
WHEN bool_expression_2 THEN result_2
[ ELSE result_else ]
END
Code language: SQL (Structured Query Language) (sql)
O
CASE
pesquisado expression avalia as expressões booleanas na sequência especificada e retorna o resultado correspondente se a expressão for avaliada como verdadeira. Caso nenhuma expressão seja avaliada como verdadeira, o
CASE
pesquisado expressão retorna a expressão no ELSE
cláusula se especificado. Se você omitir o ELSE
cláusula, o CASE
pesquisado expressão retorna NULL
. Semelhante ao simples
CASE
expressão, o CASE
pesquisado expressão interrompe a avaliação quando uma condição é atendida. Pesquisou CASE
exemplo
Usaremos as
tracks
mesa para demonstração. Suponha que você queira classificar as faixas com base em sua duração, como menos um minuto, a faixa é curta; entre 1 e 5 minutos, a faixa é média; superior a 5 minutos, a faixa é longa.
Para conseguir isso, você usa o
CASE
pesquisado expressão da seguinte forma:SELECT
trackid,
name,
CASE
WHEN milliseconds < 60000 THEN
'short'
WHEN milliseconds > 60000 AND milliseconds < 300000 THEN 'medium'
ELSE
'long'
END category
FROM
tracks;
Code language: SQL (Structured Query Language) (sql)
Tente
Neste tutorial, você aprendeu sobre SQLite
CASE
expressão para formar lógica condicional dentro de uma consulta SQL.