SENTENCIAS DE CONTROL EN SQLSERVER

WHILE

El bucle sirve para ejecutar un conjunto de instrucciones mientras la condición se cumpla

Sintaxis

While <Expresion_Logica>
begin
<Grupo_Sentencia>

end

Ejemplo:

Declare @Contador int
set @Contador = 10
while (@Contador > 0)

begin

print '@Contador = ' + CONVERT(NVARCHAR,@Contador)

set @Contador = @Contador -1

end

IF-ELSE

Nos permite ejecutar instrucciones condicionales

Sintaxis

IF <Expresion_Logica>
<Instruccion>
ELSE

<Instruccion>

Ejemplo:

Recuerden La BD Que Se Utiliza Es Northwind

DECLARE @TotalProductos INT
SELECT @TotalProductos = COUNT(*) FROM Products
IF @TotalProductos > 100

PRINT 'Existen Mas De 100 Productos'

ELSE

PRINT 'Existen Menos De 100 Productos'

Begin Y End : es para colocar un segmento o bloque de codigo en el cuerpo del If O Else donde se crea conveniente

Ejemplo:

IF (SELECT COUNT(*) FROM Products WHERE UnitsInStock>=100)> 6
BEGIN
PRINT 'Existen Mas De 10 Productos Con Mas De 100 Unidades En Stock'

SELECT ProductName,UnitsInStock

FROM Products

WHERE UnitsInStock > 100

END

ELSE

PRINT 'No Hay Productos Con Mas De 100 Unidades En StocK'

GOTO

Etiqueta que nos permite marcar un segmento de consultas en la base de datos y nos permite ejecutarlo en cualquier parte de código

Sintaxis

Define the label:
label:
Alter the execution:

GOTO label

Ejemplo:

DECLARE @Contador int;
SET @Contador = 1;
WHILE @Contador < 10

BEGIN

SELECT @Contador

IF @Contador = 4 GOTO Opcion_Uno –Jumps to the first branch.

IF @Contador = 5 GOTO Opcion_Dos–This will never execute.

SET @Contador = @Contador + 1

END

Opcion_Uno:

SELECT ‘Eligio opción uno.’

GOTO Salida; –Esto evitará que las opciones se ejecuten una despues de la otra

Opcion_Dos:

SELECT ‘Eligio opción dos.’

GOTO Salida; –Esto evitará que las opciones se ejecuten una despues de la otra

Opcion_Tres:

SELECT ‘Eligio opción tres.’;

GOTO Salida; –Esto evitará que las opciones se ejecuten una despues de la otra

Salida:

SELECT ‘Adios’;

RETURN

Pone fin la instrucción que se ejecuta

Ejemplo:

DECLARE @CONTADOR INT
SET @CONTADOR = 10
WHILE (@CONTADOR >0)

BEGIN

PRINT '@CONTADOR = ' + CONVERT(NVARCHAR,@CONTADOR)

SET @CONTADOR = @CONTADOR -1

IF (@CONTADOR = 5)

RETURN

END

PRINT 'FIN'

CASE

La sentencia case evalua varias condiciones y de acuerdo a cada case realiza una acción determinada

Sintaxis

CASE <expresion>
WHEN <valor_expresion> THEN <valor_devuelto>
WHEN <valor_expresion> THEN <valor_devuelto>

ELSE <valor_devuelto>

END

Ejemplo:

DECLARE @PAIS NVARCHAR(20)
SELECT @PAIS =
CASE 'PE'

WHEN 'PE' THEN 'PERU'

WHEN 'ME' THEN 'MEXICO'

WHEN 'PI' THEN 'PISCO'

ElSE 'No Existe Registro'

END

PRINT @PAIS