如何在子查询结果中设置默认值?
How to default a value in subquery result?
希望这是一个简单的问题,但我很可能为自己把它复杂化了。此代码的目的是在指定的操作列表中找到以前的操作名称,该列表仍处于打开状态并返回它。如果关闭就说'CLOSED'。
到目前为止,我正在使用子查询来获取正确的操作名称,正如预期的那样,我得到了一些空结果,这表明操作已关闭。我想将我的子查询包装到一个 case 语句中,按照 CASE WHEN it's null then 'CLOSED' else operation_name end 的方式说一些事情。
(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
您可以很好地使用 IFNULL 默认值,只需将 select
子句更改为:
select IFNULL(work_center_no, 'CLOSED')
希望这是一个简单的问题,但我很可能为自己把它复杂化了。此代码的目的是在指定的操作列表中找到以前的操作名称,该列表仍处于打开状态并返回它。如果关闭就说'CLOSED'。
到目前为止,我正在使用子查询来获取正确的操作名称,正如预期的那样,我得到了一些空结果,这表明操作已关闭。我想将我的子查询包装到一个 case 语句中,按照 CASE WHEN it's null then 'CLOSED' else operation_name end 的方式说一些事情。
(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
您可以很好地使用 IFNULL 默认值,只需将 select
子句更改为:
select IFNULL(work_center_no, 'CLOSED')