簡體   English   中英

If else if 條件錯誤 - SQL 中缺少關鍵字 | Oracle |

[英]Error in If else if condition - missing keyword in SQL | Oracle |

我有點卡住需要寫 SQL 如果其他邏輯如下

作為SQL的基礎知識

下面的邏輯需要導出到SQL查詢

if depcost <> empcost and empcourseid in ('A','B') and empcd='LTR'
then

   empnfees=(empvar / empdar) * empcost

else if depcost <> empcost and empcourseid <> 'A'
then
     empnfees=empcost
else
     if empcd='XYZ'       
        empnfees=empcost
     else
        empnfees=depcost

邏輯:

CASE WHEN depcost <> empcost AND empcourseid IN ('A', 'B') and empcd ='LTR'
     THEN (empvar / empdar) * empcost
     WHEN depcost <> empcost AND empcourseid <> 'A'
     THEN empcost
     ELSE
         CASE 
              when empcd='XYZ'
              then empcost
         else
              depcost
  
     END as EMPVAR

上面的代碼向我拋出錯誤:缺少關鍵字如何解決?

您使用兩種情況,但只有一種情況。 你需要另一端:

CASE WHEN depcost <> empcost AND empcourseid IN ('A', 'B') and empcd ='LTR'
     THEN (empvar / empdar) * empcost
     WHEN depcost <> empcost AND empcourseid <> 'A'
     THEN empcost
     ELSE
         CASE
              when empcd='XYZ'
              then empcost
         ELSE
              depcost
         END --------------- missing end

     END as EMPVAR

希望我幫助了你

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM