Instrução de condição IF…ELSE do SQL Server: exemplo de consulta de seleção T-SQL

Por que você precisa de declarações condicionais?

As instruções condicionais no servidor SQL ajudam a definir diferentes lógicas e ações para diferentes condições. Ele permite que você execute diferentes ações com base nas condições definidas na instrução. Na vida real, você realiza muitas ações que dependem do resultado de alguma outra atividade ou situação.

Alguns exemplos em tempo real de instrução SQL case são:

  • Se chover amanhã, planejarei uma viagem.
  • Se as passagens aéreas custarem menos de US$ 400 da minha cidade, então irei de férias para a Europa, caso contrário preferirei algum ponto turístico próximo.

Aqui, você pode ver que uma ação, como Viagem acima, é condicionalmente dependente no resultado de outra atividade que é “se vai chover ou não amanhã!”

Da mesma forma, o MS SQL também oferece a capacidade de executar instruções T-SQL condicionalmente.

Instrução IF… Else no SQL Server

In MS SQL, SE… OUTRO é um tipo de Afirmação condicional.

Qualquer instrução T-SQL pode ser executada condicionalmente usando SE... OUTRO.

A figura abaixo explica IF ELSE no SQL server:

Como funciona If e Else
Como funciona if e else
  • Se a condição for avaliada como Verdade, em seguida, instruções T-SQL seguidas por IF condição no servidor SQL será executada.
  • Se a condição for avaliada como False em seguida, instruções T-SQL seguidas por ELSE palavra-chave será executada.
  • Depois que as instruções IF T-SQL ou a instrução ELSE T-SQL são executadas, outras instruções T-SQL incondicionais continuam a execução.

IF… Else Sintaxe e regras em SQL

Sintaxe:

IF <Condition>
     {Statement | Block_of_statement}   
[ ELSE   
     {Statement | Block_of_statement}]

Regras:

  • A condição deve ser Expressão Booleana, Isto é, condição resulta em valor booleano quando avaliada.
  • Instrução SE ELSE em SQL pode manipular condicionalmente uma única instrução T-SQL ou bloco de instruções T-SQL.
  • O bloco de instrução deve começar com a palavra-chave BEGIN e fechar com a palavra-chave END.
  • Usar BEGIN e END ajuda o SQL Server a identificar o bloco de instruções que precisa ser executado e separá-lo do restante das instruções T-SQL que não fazem parte do bloco IF…ELSE T-SQL.
  • ELSE é opcional.

IF…ELSE com o único valor numérico na expressão booleana.

Condição: VERDADEIRO

IF (1=1)
PRINT 'IF STATEMENT: CONDITION IS TRUE'
ELSE
PRINT 'ELSE STATEMENT: CONDITION IS FALSE'

IF…ELSE com o único valor numérico na expressão booleana

Condição: FALSO

IF (1=2)
PRINT 'IF STATEMENT: CONDITION IS TRUE'
ELSE
PRINT 'ELSE STATEMENT: CONDITION IS FALSE'

IF…ELSE com o único valor numérico na expressão booleana

Suposição: Suponha que você tenha a tabela como 'Guru99' com duas colunas e quatro linhas conforme mostrado abaixo:

IF…ELSE com o único valor numérico na expressão booleana

Nós vamos usar 'Guru99' tabela em mais exemplos

IF…ELSE com a variável em expressão booleana.

Condição: VERDADEIRO

DECLARE @Course_ID INT = 4

IF (@Course_ID = 4)
Select * from Guru99 where Tutorial_ID = 4
ELSE
Select * from Guru99 where Tutorial_ID != 4

IF...ELSE com a variável na expressão booleana

Condição: FALSO

DECLARE @Course_ID INT = 4

IF (@Course_ID != 4)
Select * from Guru99 where Tutorial_ID = 4
ELSE
Select * from Guru99 where Tutorial_ID != 4

IF...ELSE com a variável na expressão booleana

SE… ELSE com início e fim

Condição: VERDADEIRO

DECLARE @Course_ID INT = 2

IF (@Course_ID <=2)
	BEGIN
	Select * from Guru99 where Tutorial_ID = 1
	Select * from Guru99 where Tutorial_ID = 2
	END
ELSE
	BEGIN
	Select * from Guru99 where Tutorial_ID = 3
	Select * from Guru99 where Tutorial_ID = 4
	END

SE...ELSE com início e fim

Condição: FALSO

DECLARE @Course_ID INT = 2

IF (@Course_ID >=3)
	BEGIN
	Select * from Guru99 where Tutorial_ID = 1
	Select * from Guru99 where Tutorial_ID = 2
	END
ELSE
	BEGIN
	Select * from Guru99 where Tutorial_ID = 3
	Select * from Guru99 where Tutorial_ID = 4
	END

SE...ELSE com início e fim

Instrução IF sem mais nada

Você pode usar uma instrução IF em SQL sem uma parte ELSE. Lembre-se de que afirmamos que a parte ELSE é opcional. Por exemplo:

DECLARE @Course_ID INT = 2

IF (@Course_ID <=2)
	Select * from Guru99 where Tutorial_ID = 1

Ele imprime o seguinte:

Instrução IF sem mais nada

Executar a condição falsa não produzirá saída. Considere a seguinte consulta

DECLARE @Course_ID INT = 2

IF (@Course_ID <=0)
	Select * from Guru99 where Tutorial_ID = 1

O resultado

Instrução IF sem mais nada

Instruções IF…Else aninhadas

Ao contrário de outros linguagens de programação, você não poderá adicionar uma instrução ELSE IF em uma condição IF ELSE no SQL. É por isso que você pode aninhar IF ELSE em instruções de consulta SQL. Está demonstrado abaixo:

 DECLARE @age INT;
SET @age = 60;

IF @age < 18
   PRINT 'underage';
ELSE
BEGIN
   IF @age < 50
      PRINT 'You are below 50';
   ELSE
      PRINT 'Senior';
END;
  • Neste exemplo, o código imprimirá menor de idade se o valor de @idade for inferior a 18.
  • Caso contrário, a parte ELSE será executada. A parte ElSE possui um IF…ELSE aninhado.
  • Se o valor de @idade estiver abaixo de 50, será impresso Você está abaixo de 50. Se nenhuma dessas condições for verdadeira, o código imprimirá Sênior.

Instruções IF…Else aninhadas

Resumo

  • Variáveis ​​são o objeto que atua como um espaço reservado.
  • O bloco de instrução deve começar com a palavra-chave BEGIN e fechar com a palavra-chave END.
  • Else é opcional para usar na instrução IF… ELSE
  • Aninhar a condição SQL IF ELSE em outra instrução IF…ELSE também é possível.