a 5 e: ' + CAST(@AvgCount AS varchar(8)) + '.' ;END ;GOD.Usando instrucoes IF...ELSE aninhadasDECLARE @Numero int;SET @Numero = 50;IF @Numero > 100 PRINT 'O numero e grande';ELSE BEGIN IF @Numero < 10 PRINT 'O numero e pequeno.'; ELSE PRINT 'O numero e mediano.'; END ;GOINSTRUCOES CONDICIONAIS (CASE)Essa expressao avalia uma lista de condicoes e retorna uma dos varios resultados possiveis. A expressao CASE tem dois formatos possiveis e ambos dao suporte ao argumento ELSE (opcional):A expressao simples que compara uma expressao com um conjunto de expressoes;A expressao que avalia um conjunto de expressoes;A expressao case pode ser usada em qualquer instrucao que permita uma expressao valida, como SELECT, UPDATE, DELETE e SET e em clausulas como SELECT LIST, IN, WHERE, ORDER BY e HAVING. Como o IF o CASE tambem permite aninhamentos ate o 10o nivel SintaxeExpressao CASE simples CASE <expressao de entrada> WHEN Condicao1 THEN Resultado WHEN Condicao2 THEN Resultado [ ...n ][ELSE Resultado] ENDExpressao CASE pesquisadaCASE WHEN <expressao de entrada1> THEN Resultado WHEN <expressao de entrada2> THEN Resultado [ ...n ] [ELSE Resultado] ENDExpressao CASE SimplesEssa expressao compara a expressao de entrada com cada condicao apresentada por equivalencia, caso seja equivalente o resultado correspondente sera apresentado.Expressao CASE pesquisadaEssa expressao avalia em separado cada expressao da clausula WHEN e verifica se a mesma e verdadeira e retorna o resultado da clausula THEN correspondente. Ambas as expressoes, simples e pesquisada, atendem algumas condicoes: Somente uma verificacao de igualdade e permitida (somente na expressao simples); A ordem de avaliacao e respeitada como apresentada; Retorna o resultado correspondente como TRUE; Se nenhuma das condicoes atenderem a expressao de entrada retorna o resultado do ELSE, caso tenha sido especificado, caso contrario, retorna NULL.ExemplosUsando uma instrucao SELECT com uma expressao CASE simples. Dentro de uma instrucao SELECT, uma expressao CASE simples e permitida somente para uma verificacao de igualdade; nenhuma outra comparacao e feita. O exemplo a seguir usa a expressao CASE para alterar a exibicao dos status dos produtos para torna-las mais compreensiveis.GOSELECT CD_REFERENCIA, DESC_PRODUTO, CASE ST_PRODUTO WHEN 'A' THEN 'Ativo' WHEN 'I' THEN 'Inativo' END AS ST_PRODUTOFROM TBProdutoORDER BY CD_REFERENCIAGOCD_REFERENCIA DESC_PRODUTO ST_PRODUTO------------- -------------------------------------------------- ----------1001 Whisky 08 Anos Ativo1002 Whisky 12 Anos Ativo1003 Vinho Ativo2001 Arroz Branco Ativo2002 Feijao Carioca Ativo3001 Leite Longa Vida Ativo3002 Leite Longa Vida Desnatado Ativo4010 Macarrao Parafuso Ativo4020 Macarrao Talharim Ativo6100 Pessego em Calda Ativo6200 Ervilha Ativo6300 Milho Verde Ativo(12 linha(s) afetadas)Usando uma instrucao SELECT com uma expressao CASE pesquisada. Dentro de uma instrucao SELECT, a expressao CASE pesquisada e permitida para valores a serem substituidos no conjunto de resultados com base nos valores de comparacao. O exemplo exibe o preco da lista como um comentario de texto com base na faixa de precos de um produto.GOSELECT DESC_PRODUTO, QTD_ESTOQUE, CASE WHEN VLR_UNITARIO < 5 THEN 'Menor que R$ 5,00' WHEN VLR_UNITARIO >= 5 and VLR_UNITARIO < 25 THEN 'Menor que R$ 25,00' WHEN VLR_UNITARIO >= 25 and VLR_UNITARIO < 100 THEN 'Menor que R$ 100,00' ELSE 'Maior que R$ 100,00'END as PrecoFROM TBEstoque e inner join TBProduto p on p.cd_produto = e.cd_produtoORDER BY DESC_PRODUTO ;GOUsando CASE em uma clausula