Несколько операторов IF для MYSQL
Я пытаюсь показать значения somes в результатах моей базы данных, я использую этот код, но я не могу добиться успеха:
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
Если кто-нибудь имеет какую-либо идею, был бы очень признателен
Ответы
Ответ 1
Я бы предпочел использовать 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'))
Ответ 2
Вам нужно вложить инструкции 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 будет оценивать
Ответ 3
Это то, что вы были после?
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
Ответ 4
Попробуйте выполнить
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
Ответ 5
В моей таблице из 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
Ответ 6
Пожалуйста, используйте это просто, это работает.
SELECT if(reference_customer_id = 0,sum(((package_priceemployee_percentage)/100)),sum(((package_priceemployee_percentage)/100)))
as direct_commission
Ответ 7
Вы можете попробовать это.
Используйте IF в запросе select и обновите нужную таблицу;)
создать таблицу ученик (отмечается как int, класс char);
вставить в значения студента (200, ноль), (120, ноль),
(130, NULL);
ОБНОВЛЕНИЕ студента
ВНУТРЕННЕЕ СОЕДИНЕНИЕ (выберите s.marks, IF (s.marks> = 200, 'A', IF (s.marks> = 130, 'B', 'P')) AS Grade
из студента s) b на a.marks = b.marks
SET a.Grade = b.Grade;