Sentencias de control para SQL Server

En SQL se tiene los siguientes grupos de sentencias de control: Condicional Iterativo Secuencial

Condicional

Sentencia de control SQL Server

IF-THEN-ELSE

Permite la ejecucion de una o varias lineas de codigo segun una condicion. La consdicion se especifica en la clausula IF, si la condicion el verdadera ejecuta el codigo bajo la clausula THEN, caso contrario se ejecuta el codigo de la clausula ELSE.

Ejemplo

DECLARE @TotalProductos INT SELECT @TotalProductos = COUNT(*) FROM Products IF @TotalProductos > 100 PRINT 'Existen mas de 100 Productos' ELSE PRINT 'Existe menos de 100 Productos'

WHILE

Compara un valor y si es verdadero lo ejecuta.

Ejemplo:

DECLARE @Contador INT SET @Contador = 10 WHILE (@Contador > 0) BEGIN PRINT '@Contador =' + CONVERT (NVARCHAR, @Contador) SET @Contador = @Contador -1 END

CASE

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

Ejemplo:

DECLARE @PAIS NVARCHAR(20) SELECT @PAIS = CASE 'PE' WHEN 'PE' THEN 'PERU' WHEN 'PE' THEN 'MEXICO' WHEN 'PE' THEN 'PISCO' ELSE 'No existe registro' END PRINT @PAIS

RETURN

Pone fin a 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'

Iterativo

WHILE-LOOP

Permite la ejecución de una o varias instrucciones, la ejecución se define a partir de una condición.

Ejemplo:

DECLARE @site_value INT;
SET @site_value = 0;
WHILE @site_value <= 10
BEGIN
PRINT 'Inside WHILE LOOP on Ejemplo.com';
SET @site_value = @site_value + 1;
END;
PRINT 'Done WHILE LOOP on Ejemplo.com';
GO

Secuencial

GOTO

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

Ejemplo:

DECLARE @site_value INT;
SET @site_value = 0;
WHILE @site_value <= 10
BEGIN
IF @site_value = 2
GOTO Ejemplo;
SET @site_value = @site_value + 1;
END;
Ejemplo:
PRINT 'Ejemplo.com';
GO

Permiten cambiar el flujo de ejecución de las instrucciones de nuestro código, de esta manera se puede indicar la ejecución de un bloque de instrucciones cuando se cumpla una condición.

Bibliografía