案例 STATEMENT/FUNCTION

CASE STATEMENT/FUNCTION

我需要有关 Oracle v11 中 CASE 语句的帮助。我的公司使用 TRAX Maintenance 作为其软件,“构建您自己的报告”中的构建使用 QuickPrint。我正在尝试做一个小的 CASE statement/function 但除了错误消息之外什么也得不到。有人可以帮忙吗??下面是完整的代码(非常简单),结果将 return 1 列即结果。

SELECT "ENGINEERING_ORDER"."EO" AS "EO",
       "ENGINEERING_ORDER"."EO_DESCRIPTION" AS "EO_DESCRIPTION",
       CASE,
       WHEN "ENGINEERING_ORDER"."SCHEDULE_HOURS"=0
   AND "ENGINEERING_ORDER"."SCHEDULE_CYCLES"=0 THEN "ENGINEERING_ORDER"."SCHEDULE_DAYS",
       WHEN "ENGINEERING_ORDER"."SCHEDULE_HOURS"=0
   AND "ENGINEERING_ORDER"."SCHEDULE_DAYS"=0 THEN "ENGINEERING_ORDER"."SCHEDULE_CYCLES",
       ELSE "ENGINEERING_ORDER"."SCHEDULE_HOURS",
       END
  FROM ENGINEERING_ORDER

我得到的错误是:

ORA-00923: FROM keyword not found where expected

ORA-00936: Missing expression

和其他取决于你可以做的其他方式 CASE

删除 caseend 之间的所有逗号 (,),它们不应该在那里:

SELECT "ENGINEERING_ORDER"."EO" AS "EO",
       "ENGINEERING_ORDER"."EO_DESCRIPTION" AS "EO_DESCRIPTION",
       CASE
         WHEN "ENGINEERING_ORDER"."SCHEDULE_HOURS"=0
          AND "ENGINEERING_ORDER"."SCHEDULE_CYCLES"=0
         THEN "ENGINEERING_ORDER"."SCHEDULE_DAYS"
         WHEN "ENGINEERING_ORDER"."SCHEDULE_HOURS"=0
          AND "ENGINEERING_ORDER"."SCHEDULE_DAYS"=0 
         THEN "ENGINEERING_ORDER"."SCHEDULE_CYCLES"
         ELSE "ENGINEERING_ORDER"."SCHEDULE_HOURS"
       END
  FROM ENGINEERING_ORDER