La mayoría (probablemente todos ) los lenguajes de programación incluyen alguna forma de IF
instrucción que permite a los programadores escribir código condicional. Es decir, código que se ejecutará solo si cierta condición es verdadera.
Es un concepto muy simple. Básicamente es así:
“Si esto, haz aquello.”
La mayoría de los idiomas simplemente lo llaman IF
, pero algunos tienen su propio giro en el nombre (por ejemplo, en ColdFusion/CFML, se llama CFIF
).
En cualquier caso, esencialmente hacen lo mismo.
En SQL Server (o más precisamente, su lenguaje de programación T-SQL) se llama IF
.
Ejemplo
Aquí hay un ejemplo básico para demostrar cómo IF
la declaración funciona.
IF 1 < 2 SELECT 'True';
Resultado:
True
En este caso, la expresión a evaluar es 1 < 2
. Es cierto que 1 es menor que 2 por lo que SELECT
se ejecutó la declaración y True
fue devuelto.
Sin embargo, si la expresión es falsa, no pasará nada.
El siguiente ejemplo demuestra esto:
IF 1 > 2 SELECT 'True';
Resultado:
Commands completed successfully.
Todo lo que SQL Server me dijo es que el comando se completó con éxito. No se devolvió nada más, porque no se especificó nada más.
La declaración IF... ELSE
En SQL Server, el IF
viene con un ELSE
opcional , que le permite proporcionar una alternativa, en caso de que la expresión devuelva false.
Por lo tanto, es como decir "SI esto, haz esto, DE LO CONTRARIO, haz esto".
En este caso, podemos agregar el ELSE
opcional al IF
declaración, para que se convierta en un IF... ELSE
declaración.
IF 1 > 2
SELECT 'True';
ELSE
SELECT 'False';
Resultado:
False
Ahora también obtenemos un resultado cuando la expresión es falsa.
Declaraciones IF anidadas
Una de las mejores cosas de IF
declaraciones es que puede anidarlas. Es decir, puedes agregar más IF
declaraciones dentro de la original, y más dentro de esas, etc.
Puede anidar tantos IF
declaraciones como quieras. Solo está limitado por la cantidad de memoria disponible.
Aquí hay un ejemplo de cómo anidar un IF
declaración dentro de otra.
DECLARE @bankBalance int = 123;
IF @bankBalance > 100
IF @bankBalance > 150
SELECT 'Rich!';
ELSE
SELECT 'Wealthy';
ELSE
SELECT 'Poor';
Resultado:
Wealthy
IF... ELSE IF Declaraciones
También puede usarlo como IF... ELSE IF
declaración.
DECLARE @bankBalance int = 123;
IF @bankBalance > 150
SELECT 'Rich!';
ELSE IF @bankBalance > 100
SELECT 'Wealthy';
ELSE
SELECT 'Poor';
Resultado:
Wealthy