如何在子查询结果中默认一个值?

时间:2020-02-25 13:48:03

标签: mysql subquery oracle12c

希望这是一个简单的方法,但是我很可能会为此而复杂化。该代码的目的是在仍然打开并返回的指定操作列表中查找先前的操作名称。如果关闭,请说“关闭”。

到目前为止,我正在使用子查询来获取正确的操作名称,正如预期的那样,我得到了一些空结果,这向我表明该操作已关闭。我想将子查询包装到一个case语句中,以某种方式沿用CASE的方式说出一些内容:当它为null时,然后“ CLOSED”,否则operation_name结束。

(select work_center_no 
  from shop_order_operation  
  where order_no = so.order_no 
  and release_no = so.release_no 
  and sequence_no = so.sequence_no 
  and work_center_no in ('CNC','EXPF','LS3M','LS4M','LS6M','PLAS','SAW','TBPL','EXSAW')
  and oper_status_code in ('Released','In Process') order by operation_no fetch first 1 row only )

以上是我的子查询。希望这是有道理的。

谢谢! K

1 个答案:

答案 0 :(得分:1)

您可以使用IFNULL作为默认值,只需将select子句更改为此:

select IFNULL(work_center_no, 'CLOSED')