Несколько операторов IF на MYSQL - PullRequest
11 голосов
/ 10 марта 2012

Я пытаюсь отобразить некоторые значения в результатах своей базы данных, я использую этот код, но не могу добиться успеха:

SELECT item_code, IF(category_code = 'HERR1', 'NO', 1) OR (category_code = 'COLN5', 'NO', 2) AS category_code, item_name, item_quantity FROM qa_items

РЕДАКТИРОВАТЬ: Я хочу отобразить, например:

If category_code = 'HERR1'
 Display = 1
else if category_code = 'COLN5'
 Display = 2
End If

Если у кого-то есть идеи, буду очень признателен за это

Ответы [ 6 ]

29 голосов
/ 10 марта 2012

Я бы лучше использовал CASE:

SELECT item_code, 
CASE category_code 
WHEN 'HERR1' THEN 1
WHEN 'COLN5' THEN 2
ELSE 'NO'
END as category_code, item_name, item_quantity 
FROM qa_items

Но IF также будет работать: IF(category_code='HERR1',1, IF(category_code='COLN5',2,'NO'))

7 голосов
/ 10 марта 2012

Вам необходимо вложить оператор if

SELECT item_code, IF(category_code = 'HERR1', 'NO', IF(category_code = 'COLN5', 1, 2)) AS category_code, item_name, item_quantity FROM qa_items

Тогда первый if потерпит неудачу и вложенный if оценит

5 голосов
/ 10 марта 2012

Это то, что вы преследовали?

SELECT
  item_code,
  CASE category_code
    WHEN 'HERR1' THEN 1
    WHEN 'COLN5' THEN 2
    ELSE 'NO'
  END AS category_code,
  item_name,
  item_quantity
FROM qa_items
1 голос
/ 10 марта 2012

Попробуйте следующее

SELECT item_code, CASE category_code WHEN 'HERR1' THEN 1 WHEN 'COLN5' THEN 0 ELSE 'NONE' END AS category_code, item_name, item_quantity FROM qa_items
0 голосов
/ 20 ноября 2018

Пожалуйста, используйте это просто это работает.

 SELECT if(reference_customer_id = 0,sum(((package_priceemployee_percentage)/100)),sum(((package_priceemployee_percentage)/100))) 
    as direct_commission
0 голосов
/ 07 июля 2015

В моей таблице из 3 столбцов один - package_price, employee_percentage, reference_customer_id.

Теперь я хочу, если reference_customer_id > 0, то процент сотрудника, как referenced_commission, а если reference_customer_id = 0, то прямая комиссия. Я попробовал ниже путь:

SELECT if(reference_customer_id = 0,  sum(((package_price*employee_percentage)/100)) , 0) as direct_commission, if(reference_customer_id > 0,  sum(((package_price*employee_percentage)/100)) , 0) as reference_commission
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...