Kategóriák: Minden - sintaxis - while - case - ejemplo

a Alexander Iza 1 éve

224

sentencias de control para SQL Sever

Las sentencias de control en SQL Server son esenciales para manejar el flujo de ejecución de las consultas y scripts. Entre las más destacadas se encuentra la sentencia WHILE, que permite ejecutar una o varias instrucciones mientras se cumple una condición booleana.

sentencias de control para SQL Sever

sentencias de control para SQL Sever

La sentencia CASE.- 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
Ejemplos: DECLARE @variable int = 5; SELECT [simple] = CASE @variable WHEN 1 THEN ‘One’ WHEN 5 THEN ‘Five’ ELSE ‘Some other number’ END;

Estructura condicional IF.- permite la ejecución de una o varias líneas de código según la condición.

SINTAXIS IF condicion {sentenca_sql | bloque_sql} [ELSE {sentencia_sql | bloque_sql}]
DECLARE /*Para poder ver la utilidad de éste script basta con cambiar los valores de las variables V_A y V_B según queramos. */ V_A NUMBER := 30; V_B NUMBER := 30; BEGIN /*En caso de que la variable V_A sea mayor se mostrará un mensaje*/ IF V_A > V_B THEN dbms_output.put_line('V_A es mayor'); ELSE dbms_output.put_line('V_B es mayor o igual que V_A'); END IF; END;

Sentencia GOTO.- nos permite desviar el flujo de ejecución hacia una etiqueta. Fue muy utilizada en versiones anteriores de SQL SERVER

SINTAXIS Define the label: label: Alter the execution: GOTO label
DECLARE @Counter int; SET @Counter = 1; WHILE @Counter < 10 BEGIN SELECT @Counter SET @Counter = @Counter + 1 IF @Counter = 4 GOTO Branch_One --Jumps to the first branch. IF @Counter = 5 GOTO Branch_Two --This will never execute. END Branch_One: SELECT 'Jumping To Branch One.' GOTO Branch_Three; --This will prevent Branch_Two from executing. Branch_Two: SELECT 'Jumping To Branch Two.' Branch_Three: SELECT 'Jumping To Branch Three.';

Sentencia WHILE.- permite la ejecución de una o varias instrucciones.

SINTAXIS WHILE Boolean_expression { sql_statement | statement_block | BREAK }
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;