oracle报单行子查询错误,Oracle SQL:where子句中的Case语句返回错误“单行子查询返回多行”...

这是一个带有CASE条件语句的select查询的where子句 . 我写这篇文章是为了满足以下要求:“如果是任何工作日,结果将包含第二天的日期,如果是星期五,结果将包括星期六,星期日和星期一的日期”

where DTTM IN (case

when to_char(sysdate,'day') <> 'friday ' then to_date(sysdate+1,'DD/MON/YY')

else (select to_date(sysdate+1,'DD/MM/YYYY') + level - 1 ddate

from dual

connect by level <= to_date(sysdate+4,'DD/MM/YYYY') - to_date(sysdate+1,'DD/MM/YYYY')

)

end)

我也使用了 IN ,但是我收到了一个错误

ORA-01427:单行子查询返回多行00000 - “单行子查询返回多行”

请帮我解决这个错误 .

以下是供您参考的完整查询:

select * from orders

where DTTM IN (case

when to_char(sysdate,'day') <> 'friday ' then to_date(sysdate+1,'DD/MON/YY')

else (select to_date(sysdate+1,'DD/MM/YYYY') + level - 1 ddate

from dual

connect by level <= to_date(sysdate+4,'DD/MM/YYYY') - to_date(sysdate+1,'DD/MM/YYYY')

)

end)

order by DTTM;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值