ケースはあなたを助けるかもしれません:
SELECT t.first_name,
t.last_name,
t.employid,
t.status
FROM employeetable t
WHERE t.status = (CASE WHEN status_flag = STATUS_ACTIVE THEN 'A'
WHEN status_flag = STATUS_INACTIVE THEN 'T'
ELSE null END)
AND t.business_unit = (CASE WHEN source_flag = SOURCE_FUNCTION THEN 'production'
WHEN source_flag = SOURCE_USER THEN 'users'
ELSE null END)
AND t.first_name LIKE firstname
AND t.last_name LIKE lastname
AND t.employid LIKE employeeid;
CASEステートメントは、複数の条件を評価して単一の値を生成します。したがって、最初の使用法では、status_flagの値を確認し、その値に応じて「A」、「T」、またはnullを返し、それをt.statusと比較します。 2番目のCASEステートメントを使用してbusiness_unit列についても同じことを行います。