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:
- 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'
Condição: FALSO
IF (1=2) PRINT 'IF STATEMENT: CONDITION IS TRUE' ELSE PRINT 'ELSE STATEMENT: CONDITION IS FALSE'
Suposição: Suponha que você tenha a tabela como 'Guru99' com duas colunas e quatro linhas conforme mostrado abaixo:
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
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
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
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
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:
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çõ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.
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.