Как добавить оператор case в предложение where

Образец таблицы:

Table1 (Userid, Name, Salary, Rank)

Запрос:

create procedure Proc_SelectDetails
as
@Salary int
begin
     select * from Table1 where salary >= @Salary  
end

Если @salary > 50000, проверьте также ранг (с окладом), который должен быть больше 6, иначе ранг не учитывается для сравнения. просто сравните зарплату. Как добавить это в предложение where с помощью оператора case.

Пожалуйста, добавьте набор данных и лучше объясните свою логику. Так можно написать где дело зарплата ... потом .... конец

Joe Taras 09.10.2018 14:27

В общем, гораздо лучше использовать конструкции AND / OR в предложении WHERE вместо выражений case.

jarlh 09.10.2018 15:09
ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
Понимание Python и переход к SQL
Понимание Python и переход к SQL
Перед нами лабораторная работа по BloodOath:
1
2
88
2

Ответы 2

Это должно сделать это:

SELECT *
FROM Table1 
WHERE Salary >= @Salary
AND (@Salary <= 50000 OR Rank > 6)

Я мог упустить логику случая where, в любом случае этот запрос показывает пример case when в where, если salary больше, чем @Salary сравнивает rank с зарплатой.

select * from Table1 where 
     case when salary >= @Salary 
        then case when rank >= 6 then 1 
        else 0 end
     else 0 end = 1

Другие вопросы по теме