CASO SQLite

Resumo: neste tutorial, você aprenderá sobre a CASE expressão SQLite para adicionar a lógica condicional a uma consulta.

A CASEexpressão SQLite avalia uma lista de condições e retorna uma expressão baseada no resultado da avaliação.

A CASEexpressão é semelhante à IF-THEN-ELSEinstrução em outras linguagens de programação.

Você pode usar a CASEexpressão em qualquer cláusula ou instrução que aceite uma expressão válida. Por exemplo, você pode usar a expressão CASEem cláusulas como WHERE, ORDER BY, e instruções como , e .HAVINGSELECTSELECTUPDATEDELETE

SQLite fornece duas formas de CASEexpressão: simples CASEe pesquisada CASE.

CASEExpressão simples SQLite

A expressão simples CASEcompara uma expressão a uma lista de expressões para retornar o resultado. O seguinte ilustra a sintaxe da CASEexpressão simples.

CASE case_expression
     WHEN when_expression_1 THEN result_1
     WHEN when_expression_2 THEN result_2
     ...
     [ ELSE result_else ] 
ENDLinguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

A expressão simples CASEcompara the case_expressioncom a expressão que aparece na primeira WHENcláusula, when_expression_1, para igualdade.

Se for case_expressionigual a when_expression_1, o simples CASEretorna a expressão na THENcláusula correspondente, que é o result_1.

Caso contrário, a expressão simples CASEcompara the case_expressioncom a expressão na próxima WHENcláusula.

Caso não case_expressioncorresponda a when_expression, a CASEexpressão retorna result_elsena ELSEcláusula. Se você omitir a ELSEcláusula, a CASEexpressão retornará NULL.

A expressão simples CASEusa 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.

CASEExemplo simples

Vamos dar uma olhada na customerstabela do banco de dados de exemplo .

clientes

Suponha que você tenha que fazer um relatório dos grupos de clientes com a lógica de que se um cliente estiver localizado nos EUA, esse cliente pertence ao grupo nacional, caso contrário o cliente pertence ao grupo estrangeiro.

Para fazer este relatório, você usa a CASEexpressão simples na SELECTdeclaração da seguinte forma:

SELECT customerid,
       firstname,
       lastname,
       CASE country 
           WHEN 'USA' 
               THEN 'Domestic' 
           ELSE 'Foreign' 
       END CustomerGroup
FROM 
    customers
ORDER BY 
    LastName,
    FirstName;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Tente

CASEExpressão pesquisada SQLite

A CASEexpressão pesquisada avalia uma lista de expressões para decidir o resultado. Observe que a CASE expressão simples compara apenas por igualdade, enquanto a CASEexpressão pesquisada pode usar qualquer forma de comparação.

O seguinte ilustra a sintaxe da CASEexpressão pesquisada.

CASE
     WHEN bool_expression_1 THEN result_1
     WHEN bool_expression_2 THEN result_2
     [ ELSE result_else ] 
ENDLinguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

A CASEexpressão pesquisada 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, a CASEexpressão pesquisada retornará a expressão na ELSEcláusula, se especificada. Se você omitir a cláusula, a expressão ELSEpesquisada retornará .CASENULL

Semelhante à CASEexpressão simples, a CASE expressão pesquisada interrompe a avaliação quando uma condição é atendida.

CASEExemplo pesquisado

Usaremos a trackstabela para a demonstração.

Suponha que você queira classificar as faixas com base em sua duração, como menos de um minuto, a faixa é curta; entre 1 e 5 minutos, a pista é média; superior a 5 minutos, a pista é longa.

Para conseguir isso, você usa a CASEexpressão pesquisada 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;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Tente

Exemplo de CASE pesquisado em SQLite

Neste tutorial, você aprendeu sobre CASEa expressão SQLite para formar lógica condicional dentro de uma consulta SQL.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *