Как написать условие if в выражении select?
У меня есть столбец, который должен быть заполнен данными ture/false/(N/A). Этот столбец является частью оператора select
Итак, как я могу достичь этого?
SELECT distinct
program_id,
prog_name,
Eitc_Active_Switch as Prog_Status,
progmap.client_id,
progmap.ORG_ID,
sec.calwinexists_ind as interface,
sec.Client_name
FROM ref_programs prog (nolock)
LEFT OUTER JOIN ref_county_program_map progmap (nolock)
ON progmap.program_id=prog.prog_id AND progmap.CLIENT_ID=prog.CLIENT_ID
INNER join sec_clients sec (nolock)
on sec.client_id=progmap.Client_id
'sec.calwinexists_ind as interface' - это столбец. true/false должно отображаться только для трех записей (AMC, AMBD, ACMNI) и "N/A",
для остальных записей
Кто-нибудь может мне помочь?
Ответы
Ответ 1
Вы должны использовать выражение CASE.
Пример:
SELECT name,salary,
CASE
WHEN salary <= 2000 THEN 'low'
WHEN salary > 2000 AND salary <= 3000 THEN 'average'
WHEN salary > 3000 THEN 'high'
END AS salary_level
FROM employees
ORDER BY salary ASC
И таким образом вы должны адаптировать свой запрос в соответствии с вашими потребностями.
Ответ 2
Можете ли вы использовать элемент CASE WHEN. Взгляните на: http://dev.mysql.com/doc/refman/4.1/pt/control-flow-functions.html