web-dev-qa-db-ja.com

selectステートメント内でif条件を記述する方法?

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'が列です。 3つのレコード(AMC、AMBD、ACMNI)についてのみtrue/falseを表示し、残りのレコードについては「N/A」を表示する必要があります

誰か助けてもらえますか?

10

[〜#〜] 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

このようにして、ニーズに合わせてクエリを調整する必要があります。

25
Cristian Boariu

CASE WHENコントロールを使用できますか。見てください: http://dev.mysql.com/doc/refman/4.1/pt/control-flow-functions.html

1
bruno.zambiazi