Índice
0. Introducción1. 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:
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 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.