SELECT *
FROM record_dinner
WHERE case when dinner_type_id='10' THEN work_card_id='1' end
同样的sql语句 在mysql中可以查询出数据 但在oracle中却报错缺失关键字 是因为oracle语法不允许case when then之后跟这种语句吗
case when then在mysql和oracle中的不同
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
3条回答 默认 最新
Watch the clown 2023-08-04 09:59关注CASE语句的语法跟MySQL不一样,,Oracle中的CASE语句不支持在THEN子句中使用条件表达式把将条件放在CASE语句之前。正确语法是:
CASE WHEN condition THEN result [WHEN condition THEN result ...] [ELSE result] END你应该修改程这样:
SELECT * FROM record_dinner WHERE CASE WHEN dinner_type_id='10' AND work_card_id='1' THEN 1 ELSE 0 END = 1本回答被题主选为最佳回答 , 对您是否有帮助呢?评论 打赏 举报解决 2无用