在 Mysql 中使用 If Else

Using If Else in Mysql

SELECT process.process_name, com_jobcard.job_card_num, 

IF process.UOM =  '1' THEN  SET (com_jobcard.dept_qty) AS Total_qty

ELSEIF process.UOM =  '2' THEN  SET (com_jobcard.total_stones) AS Total_qty


FROM timer_completed
INNER JOIN PROCESS ON process.id = timer_completed.process_id
INNER JOIN com_jobcard ON timer_completed.job_card_id = com_jobcard.id
AND timer_completed.report_date =  '2015-09-15'

嗨,朋友们,我想检索部门数量的值 When process.UOM = 1 else if process.UOM = '2' THEN SET (com_jobcard.total_stones) AS Total_qty ,请帮我提供代码,在此先感谢

你可以使用 case-when 作为

SELECT 
process.process_name, 
com_jobcard.job_card_num, 
case 
 when process.UOM =  '1' then com_jobcard.dept_qty 
 when process.UOM =  '2' then com_jobcard.total_stones
end as Total_qty
FROM timer_completed
INNER JOIN PROCESS ON process.id = timer_completed.process_id
INNER JOIN com_jobcard ON timer_completed.job_card_id = com_jobcard.id
AND timer_completed.report_date =  '2015-09-15'

注意:现在没有 else 所以如果两个条件都失败了最好添加一个 else

 case 
     when process.UOM =  '1' then com_jobcard.dept_qty 
     when process.UOM =  '2' then com_jobcard.total_stones
     else 'something you want'
   end as Total_qty

IF(condition, true_value, false_value)可以这样用

SELECT process.process_name, com_jobcard.job_card_num, 

IF(process.UOM =  '1', com_jobcard.dept_qty, IF(process.UOM =  '2', com_jobcard.total_stones, 0)) AS Total_qty

FROM timer_completed
INNER JOIN PROCESS ON process.id = timer_completed.process_id
INNER JOIN com_jobcard ON timer_completed.job_card_id = com_jobcard.id
AND timer_completed.report_date =  '2015-09-15'