SENTENCIAS DE CONTROL SQL SERVER

Permiten

Declarar y establecer variables

Esto logra

La posibilidad de controlar el flujo lógico

CONDICIONAL

SECUENCIAL

ITERATIVO

NOMBRE: PAÚL AGUIRRE

NIVEL: 7mo "B"

ACTIVIDAD REBOTE SEMANA 5

SENTENCIA IF-ELSE

EJEMPLO

IF fecha_nac <’1-01-1970’ THEN
salario:= salario *1.15;
ELSE

salario:= salario* 1.05;

END IF;

SENTENCIA CASE

SINTAXIS

IF Boolean_expression
{ sql_statement | statement_block }
[ ELSE
{ sql_statement | statement_block } ]

Nos permite ejecutar instrucciones condicionales sea como verdaderas o falsas.

Nos permite evaluar diferentes opciones, por cada opción se realiza una instrucción específica.

SINTAXIS

CASE [input_expression]
WHEN [eval_expression] THEN [output_expression]
…ELSE [output_expression]

END

EJEMPLO

DECLARE
V_TIPO_TRABAJADOR VARCHAR2(2) := 'AP';
V_SALARIO NUMBER;
BEGIN
CASE
WHEN V_TIPO_TRABAJADOR = 'AP' THEN
V_SALARIO := 1500;

SENTENCIA GOTO

Permite especificar un rango de números enteros, finalmente ejecuta una secuencia de instrucciones para cada número entero dentro de la lista de números.

SINTAXIS

DECLARE @cnt INT = 0;

WHILE @cnt < cnt_total

BEGIN

{...statements...}

SET @cnt = @cnt + 1;

END;

EJEMPLO

BEGIN
FOR i IN 1..8 LOOP
DBMS_OUTPUT.PUT_LINE('El número de ésta iteracción es:' || i);

END LOOP;

END;

Permite la ejecución de una o varias instrucciones. A diferencia de la sentencia FOR-LOOP, en WHILE-LOOP la ejecución se define a partir de una condición.

SINTAXIS

DECLARE
V_TOTAL NUMBER(9) := 0;
V_CONTADOR NUMBER(6) := 0;

BEGIN

EJEMPLO

Nos permite cambiar la línea secuencial de la ejecución hacia una etiqueta. Las etiquetas son marcadas con los símbolos << y >>.

Define the label:
label:
Alter the execution:

GOTO label

SINTAXIS

EJEMPLO

DECLARE
V_NUM NUMBER := 1;
BEGIN

WHILE V_NUM <= 13 LOOP

DBMS_OUTPUT.PUT_LINE('El valor V_NUM es :' || V_NUM);

V_NUM := V_NUM + 2.1;

END LOOP;

END;

WHILE condition
BEGIN
{...statements...}

END