Могу ли я выполнить оператор условного или выборочного выбора в SQL?

#sql #oracle #select

#sql #Oracle #выберите

Вопрос:

Есть ли способ выбрать SELECT оператор?

Я имел в виду, что в одном запросе для таблицы с именем vendors с salary и bonus и vendor type . Я хотел отобразить в одном запросе зарплату поставщика, если тип поставщика — «поставщик фруктов», и бонус, только если поставщик — «поставщик шин»?

Есть ли способ сделать это? Спасибо.

Комментарии:

1. Пожалуйста, укажите причину при голосовании за это, чтобы я мог знать о своих ошибках. Спасибо.

2. Можете ли вы указать некоторые примеры данных и требуемый вывод с вашим вопросом? Согласно текущему вопросу, похоже, @ajmalmhd04 ответил на ваш вопрос.

3. Спасибо. Извините, что не предоставил достаточно информации. Забыл его вставить.

Ответ №1:

Разве это не так просто:?

 SELECT salary   CASE WHEN vendor_type = 'tire vendor' 
                     THEN bonus ELSE 0 
                     END vendor_salary
FROM vendors;
  

/

или, если вам нужна зарплата в случае поставщика фруктов и бонус, если поставщик шин, вы можете запросить как:

 SELECT
     CASE WHEN vendor_type = 'fruit vendor' 
          THEN salary 
          WHEN vendor_type= 'tire vendor' 
          THEN bonus 
     END vendor_salary
FROM vendors;
  

Надеюсь, вам просто нужно CASE предложение.

Комментарии:

1. Спасибо. Извините, по-видимому, я не знал о существовании оператора CASE. Рад узнать. Я также должен искать более доступные функции для sql.