Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Como a instrução IF funciona no SQL Server


A maioria (provavelmente todos ) as linguagens de programação incluem alguma forma do IF instrução que permite aos programadores escrever código condicional. Ou seja, código que será executado apenas se uma determinada condição é verdadeira.

É um conceito muito simples. Basicamente fica assim:

“Se isso, faça aquilo.”

A maioria das linguagens simplesmente o chama de IF , mas alguns têm seu próprio toque no nome (por exemplo, no ColdFusion/CFML, é chamado de CFIF ).

Em qualquer caso, eles essencialmente fazem a mesma coisa.

No SQL Server (ou mais precisamente, sua linguagem de programação T-SQL) é chamado de IF .

Exemplo


Aqui está um exemplo básico para demonstrar como o IF declaração funciona.
IF 1 < 2 SELECT 'True';

Resultado:
True

Nesse caso, a expressão a ser avaliada é 1 < 2 . É verdade que 1 é menor que 2, então o SELECT declaração foi executada e True foi devolvido.

No entanto, se a expressão for falsa, nada acontecerá.

O exemplo a seguir demonstra isso:
IF 1 > 2 SELECT 'True';

Resultado:
Commands completed successfully.

Tudo o que o SQL Server me disse é que o comando foi concluído com êxito. Nada mais foi retornado, porque nada mais foi especificado.

A declaração SE... ELSE


No SQL Server, o IF declaração vem com um opcional ELSE , que permite fornecer uma alternativa, caso a expressão retorne false.

Portanto, é como dizer “SE isso, faça isso, ELSE, faça isso”.

Neste caso, podemos adicionar o opcional ELSE para o IF declaração, para que se torne um IF... ELSE demonstração.
IF 1 > 2
       SELECT 'True';
ELSE 
       SELECT 'False';

Resultado:
False

Agora também obtemos um resultado quando a expressão é falsa.

Declarações IF aninhadas


Uma das grandes vantagens do IF instruções é que você pode aninhá-las. Ou seja, você pode adicionar mais IF declarações dentro do seu original, e mais dentro daqueles etc.

Você pode aninhar quantos IF declarações como você gosta. Você está limitado apenas pela quantidade de memória disponível.

Aqui está um exemplo de aninhamento de um IF declaração dentro de outra.
DECLARE @bankBalance int = 123;
IF @bankBalance > 100
    IF @bankBalance > 150
        SELECT 'Rich!';
    ELSE
        SELECT 'Wealthy';
ELSE 
    SELECT 'Poor';

Resultado:
Wealthy

SE… ELSE IF Declarações


Você também pode usá-lo como um IF... ELSE IF demonstração.
DECLARE @bankBalance int = 123;
IF @bankBalance > 150
    SELECT 'Rich!';
ELSE IF @bankBalance > 100
    SELECT 'Wealthy';
ELSE
    SELECT 'Poor';

Resultado:
Wealthy