sql >> Base de Datos >  >> RDS >> Sqlserver

Cómo funciona la instrucción IF en SQL Server

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