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