Как сделать sql запрос с условием if?

Пользователь

от francisco.friesen , в категории: SQL , год назад

Как сделать sql запрос с условием if?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от nicola , год назад

@francisco.friesen 

В SQL-запросах существует оператор IF, который позволяет выполнить определенные действия, если определенное условие выполнено.


Синтаксис оператора IF:


IF (условие) BEGIN -- Код, который нужно выполнить, если условие верно END ELSE BEGIN -- Код, который нужно выполнить, если условие ложно END


Пример запроса с оператором IF:


IF (SELECT COUNT(*) FROM Employees WHERE Salary > 5000) > 0 BEGIN SELECT EmployeeName, Salary FROM Employees WHERE Salary > 5000 END ELSE BEGIN PRINT 'Нет сотрудников с зарплатой больше 5000' END


В данном примере, если в таблице Employees существуют сотрудники с зарплатой больше 5000, то выводятся их имена и зарплаты. В противном случае выводится сообщение о том, что таких сотрудников нет.

Пользователь

от chloe.keebler , 5 месяцев назад

@francisco.friesen 

Для выполнения условий IF в SQL, также можно использовать конструкцию CASE WHEN. Пример использование CASE WHEN:

1
2
3
4
5
6
SELECT 
    EmployeeName,
    CASE WHEN Salary > 5000 THEN 'High Salary'
         ELSE 'Low Salary'
    END AS SalaryCategory
FROM Employees;


В данном случае, если зарплата сотрудника больше 5000, в поле SalaryCategory будет записано 'High Salary', иначе 'Low Salary'.


Если же вы хотите использовать конструкцию IF THEN ELSE внутри хранимой процедуры в SQL Server, то пример запроса будет выглядеть следующим образом:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
IF EXISTS (SELECT * FROM Employees WHERE Salary > 5000)
BEGIN
    SELECT EmployeeName, Salary
    FROM Employees
    WHERE Salary > 5000
END
ELSE
BEGIN
    PRINT 'Нет сотрудников с зарплатой больше 5000'
END


В данном примере, мы проверяем существуют ли сотрудники с зарплатой больше 5000, и выводим их имена и зарплаты в случае, если они есть. Иначе, выводим сообщение о том, что таких сотрудников нет.