如何在select语句中编写if条件?

11

我有一个需要填充为true/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'是一个列名。对于仅有的三个记录(AMC,AMBD和ACMNI),应该显示true/false,对于其余记录应显示为“N/A”。

有人可以帮我吗?


要使用代码标签,请先选中文本,然后按下看起来像这样的按钮{},或将您的文本缩进4个空格。 - Marlon
2个回答

26

你应该使用 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

你应该根据自己的需求调整查询方式。


有没有一种方法可以添加“否则”即默认语句? - Kaizar Laxmidhar

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接