domingo, 5 de abril de 2015

Receta T-SQL No. 2.3: Sentencia de Selección IF...THEN...ELSE

Índice

0. Introducción
1. Problema
2. Solución
3. Discusión de la Solución
4. Práctica: Código T-SQL
5. Conclusiones
6. Glosario
7. Literatura & Enlaces

0. Introducción

Continuamos con la elaboración de recetas T-SQL. En esta oportunidad aprenderemos a usar el bloque de selección IF...THEN...ELSE para controlar el flujo de ejecución de un grupo de sentencias T-SQL. Conoceremos la sintaxis declarativa como también algunos ejemplos usando la base de datos AdventureWorks para afianzar e intuir el funcionamiento de este elemento de programa.

1. Problema

Queremos controlar el flujo de ejecución de una sentencia o más sentencias T-SQL.

2. Solución

T-SQL cuenta con el elemento de programa o sentencia de selección múltiple IF...THEN...ELSE para dar solución a este problema de control del flujo de ejecución de sentencias T-SQL.

3. Discusión de la Solución

La sentencia IF...THEN...ELSE [2] comprende la siguiente sintaxis:

IF Expresión_Booleana
{ sentencia_SQL | bloque_sentencias }
[ ELSE
{ sentencia_SQL | bloque_sentencias }
]

Donde la sección Expressión_Booleana es cualquier predicado lógico que resulte en uno de los valores lógicos FALSO (FALSE) o VERDADERO (TRUE); si esta sección da como resultado el valor lógico VERDADERO se ejecutará uno (sentencia_SQL) o más (bloque_sentencias) sentencias del bloque IF. En caso contrario (opcional), se ejecutará el bloque ELSE si es que estuviera presente.

4. Práctica: Código T-SQL

A través del siguiente ejemplo básico de uso de esta sentencia IF...THEN...ELSE declararemos una variable y evaluaremos su valor para tomar uno entre dos caminos de ejecución posibles:


En la línea 1 creamos la variable entera (int) QuerySelector. El valor de esta variable, 3, será evaluado (comparado) en la línea 2 en la sentencia IF con la literal constante 1. El resultado de la evaluación previa será FALSO (FALSE) y se ejecutarán el conjunto de sentencias del bloque ELSE de las líneas 10-15. Cuando ejecutamos esta sentencia en Microsoft SQL Server Managament Studio, obtenemos el siguiente resultado:
Sentencia de Selección IF...THEN...ELSE - Ejemplo 1
Figura 1. Resultado ejecución ejemplo 1.

Vale anotar que el bloque IF permite la evaluación de múltiples predicados o sentencias booleanas; por ejemplo:

IF (@QuerySelector = 1 OR @QuerySelector = 3) AND (NOT @QuerySelector IS NULL)


Al reemplazar este bloque IF con el del ejemplo anterior, obtendremos el siguiente resultado:
Figura 1. Resultado ejecución ejemplo 2
Figura 2. Figura 1. Resultado ejecución ejemplo 2.

5. Conclusiones

Hemos explorado y puesto en práctica los fundamentales de uso de la sentencia de selección IF...THEN...ELSE. Esta sentencia nos permite controlar el flujo de control de uno o más bloques de construcción. Esto nos resulta de utilidad para obtener caminos de ejecución diferentes dependiendo del valor de una determinada variable en un momento de ejecución dado.

6. Glosario

  • Bloque
  • Expresión booleana
  • Sentencia

7. Literatura & Enlaces

[1]: SQL Server 2012 T-SQL Recipes - A Problem-Solucion Approach by Jason Brimhall, David Dye, Jonathan Gennick, Andy Roberts, and Wayne Sheffield. Copyright 2012 Jason Brimhall, David Dye, Jonathan Gennick, Andy Roberts, and Wayne Sheffield, 978-1-4302-4200-0.
[2]: Using IF...ELSE - https://technet.microsoft.com/en-us/library/ms187471(v=sql.105).aspx


S

No hay comentarios:

Publicar un comentario

Envíe sus comentarios, dudas, sugerencias, críticas. Gracias.