Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Как работи операторът IF в SQL Server

Повечето (вероятно всички ) езиците за програмиране включват някаква форма на IF изявление, което позволява на програмистите да пишат условен код. Тоест код, който ще се изпълнява само if определено условие е вярно.

Това е много проста концепция. По принцип става така:

„Ако това, направете това.“

Повечето езици просто го наричат ​​IF , но някои имат свой собствен обрат в името (например в ColdFusion/CFML се нарича CFIF ).

Във всеки случай те по същество правят същото.

В SQL Server (или по-точно неговия език за програмиране T-SQL) се нарича IF .

Пример

Ето основен пример, за да демонстрирате как IF изявление работи.

IF 1 < 2 SELECT 'True';

Резултат:

True

В този случай изразът за оценка е 1 < 2 . Вярно е, че 1 е по-малко от 2, така че SELECT операторът беше изпълнен и True беше върнат.

Ако обаче изразът е фалшив, нищо няма да се случи.

Следният пример демонстрира това:

IF 1 > 2 SELECT 'True';

Резултат:

Commands completed successfully.

Всичко, което SQL Server ми каза, е, че командата е завършена успешно. Нищо друго не беше върнато, защото нищо друго не беше посочено.

Изявлението IF... ELSE

В SQL Server, IF операторът идва с незадължителен ELSE , което ви позволява да предоставите алтернатива, в случай че изразът върне false.

Следователно, това е все едно да кажете „АКО това, направете това, ИНАЧЕ, направете това“.

В този случай можем да добавим незадължителния ELSE към IF израз, така че да стане IF... ELSE изявление.

IF 1 > 2
       SELECT 'True';
ELSE 
       SELECT 'False';

Резултат:

False

Сега получаваме и резултат, когато изразът е фалшив.

Вложени IF оператори

Едно от страхотните неща за IF твърденията е, че можете да ги вложите. Тоест, можете да добавите още IF изявления във вашия оригинален, и още в тези и т.н.

Можете да вложите толкова IF изявления, както желаете. Вие сте ограничени само от количеството налична памет.

Ето пример за влагане на IF изявление в друго.

DECLARE @bankBalance int = 123;
IF @bankBalance > 100
    IF @bankBalance > 150
        SELECT 'Rich!';
    ELSE
        SELECT 'Wealthy';
ELSE 
    SELECT 'Poor';

Резултат:

Wealthy

IF... ELSE IF оператори

Можете също да го използвате като IF... ELSE IF изявление.

DECLARE @bankBalance int = 123;
IF @bankBalance > 150
    SELECT 'Rich!';
ELSE IF @bankBalance > 100
    SELECT 'Wealthy';
ELSE
    SELECT 'Poor';

Резултат:

Wealthy

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Тенденции през 2020 г., за които DBA трябва да са наясно

  2. Защо да използвате ниво на изолация ЧЕТЕНЕ НЕКОНТРОЛИРАНО?

  3. Състояние на опашката за процес на SQL Server

  4. Как да конвертирате стойност на дата/час в низ в SQL Server с помощта на CONVERT()

  5. Запитване на SQL Server:Бързо с буквално, но бавно с променлива