Las declaraciones se ejecutan repetidamente siempre que la condición especificada sea verdadera. La ejecución de declaraciones en el ciclo WHILE se puede controlar desde el interior del ciclo con las palabras clave BREAK y CONTINUE.
Sintaxis
While <Expresion_Logica>
begin
<Grupo_Sentencia>
end
Ejemplo:
USE AdventureWorks2012;
GO
WHILE (SELECT AVG(ListPrice) FROM Production.Product) < $300
BEGIN
UPDATE Production.Product
SET ListPrice = ListPrice * 2
SELECT MAX(ListPrice) FROM Production.Product
IF (SELECT MAX(ListPrice) FROM Production.Product) > $500
BREAK
ELSE
CONTINUE
END
PRINT 'Too much for the market to bear';
Nos Permite Ejecutar Instrucciones Condicionales.
Sintaxis
IF <Expresion_Logica>
<Instruccion>
ELSE
<Instruccion>
Ejemplo:
DECLARE @Tabla INT = 1;
IF(@Tabla = 1)
SELECT * FROM dbo.Products;
ELSE
SELECT * FROM dbo.Employees;
La estructura condicional CASE permite evaluar una expresion y devolver un valor u otro.
Sintaxis
Sintaxis:
CASE <expresion>
WHEN <valor_expresion> THEN <valor_devuelto>
WHEN <valor_expresion> THEN <valor_devuelto>
ELSE <valor_devuelto> -- Valor por defecto
END
Ejemplo:
USE AdventureWorks2012;
GO
SELECT ProductNumber, Category =
CASE ProductLine
WHEN 'R' THEN 'Road'
WHEN 'M' THEN 'Mountain'
WHEN 'T' THEN 'Touring'
WHEN 'S' THEN 'Other sale items'
ELSE 'Not for sale'
END,
Name
FROM Production.Product
ORDER BY ProductNumber;
GO
Se puede utilizar en cualquier punto para salir de un procedimiento, lote o bloque de instrucciones. Las instrucciones que siguen a RETURN no se ejecutan.
Sintaxis
RETURN [ integer_expression ]
Ejemplo:
USE AdventureWorks2012;
GO
CREATE PROCEDURE checkstate @param VARCHAR(11)
AS
IF (SELECT StateProvince FROM Person.vAdditionalContactInfo WHERE ContactID = @param) = 'WA'
RETURN 1
ELSE
RETURN 2;
GO