首页 > 解决方案 > 根据工作代码显示表格中的不同字段

问题描述

我对如何编写一些 Oracle SQL 代码以根据 job_type_code 的内容显示不同的字段值有一些想法。

如果 job_type_code 是 EN11 或 EN12,则唯一需要返回的作业是 target_comp_date 过去的作业。

如果 job_type_code 是 EN90 或 EN91,则所有作业都应与 target_comp_date 一起显示。

我尝试输入的代码如下。

select

case
 when job_type.job_type_code in ('EN11','EN12') and job.target_comp_date < SYSDATE then 
 job.target_comp_date
 when job_type.job_type_code in ('EN90','EN91') then job.target_comp_date
 else 'check'
 end as Test

from
job
inner join job_type on job.job_type_key = job_type.job_type_key

标签: sqloraclecase

解决方案


中的case表达式select不会过滤任何数据。这听起来像一个where子句:

where (job_type_code in ('EN11', 'EN12') and target_comp_date < sysdate
      ) or
      (job_type_code in ('EN90', 'EN91') and target_comp_date > sysdate
      )

目前尚不清楚您是否想要其他job_type_codes. 如果是这样,请添加or (job_type_code not in ('EN11', 'EN12', 'EN90', 'EN91').


推荐阅读