2016-12-05 52 views
-1

我是SQL plus的新手。任何人都可以幫我弄清我的代碼的語法錯誤嗎?此SQL CASE的正確語法?

CREATE OR REPLACE VIEW BR_STATUS AS 
SELECT CARTS_PER_CUSTOMER.loginName,CARTS_PER_CUSTOMER.number_of_carts, 
     CASE WHEN (number_of_carts < 1) THEN 'BR-1 Satisfied.' 
      ELSE 'BR-2 violated.' 
     END AS 'BR-status' 
FROM CARTS_PER_CUSTOMER; 

每當我試着運行這部分代碼,我得到這個錯誤信息

ORA-00923:FROM關鍵字未找到預期。

我跟着CASE的幾個oracle文檔,但無法弄清楚我寫錯了什麼。任何建議,將不勝感激。

+4

的與以前刪除逗號。 'END AS'BR-status','應該是'END AS「BR-status」' – xQbert

+4

對該列別名使用雙引號''BR-status「'。 – jarlh

回答

1

FROM子句之前有一個不必要的逗號CASE語句沒什麼錯。還使用Alias名雙引號代替單引號(感謝Jarlh)

SELECT CARTS_PER_CUSTOMER.loginName, 
     CARTS_PER_CUSTOMER.number_of_carts, 
     CASE 
     WHEN (number_of_carts < 1) THEN 'BR-1 Satisfied.' 
     ELSE 'BR-2 violated.' 
     END AS "BR-status" --Remove the comma here 
FROM CARTS_PER_CUSTOMER; 
+0

嘗試使用逗號'CREATE OR REPLACE VIEW BR_STATUS AS SELECT CARTS_PER_CUSTOMER.loginName,CARTS_PER_CUSTOMER.number_of_carts, CASE WHEN(number_of_carts <1)THEN'BR-1 Satisfied。' ELSE'BR-2違規'。 END AS'BR-status' FROM CARTS_PER_CUSTOMER;'仍然得到相同的錯誤信息。 –

+1

對該列別名「BR-status」使用雙引號。 – jarlh

+0

@shamveel_ahammed - 現在檢查 –

-1
CREATE OR REPLACE VIEW BR_STATUS AS 
SELECT CARTS_PER_CUSTOMER.loginName,CARTS_PER_CUSTOMER.number_of_carts, 
     CASE WHEN (CARTS_PER_CUSTOMER.number_of_carts < 1) THEN 'BR-1 Satisfied.' 
      ELSE 'BR-2 violated.' 
     END AS BR_status 
FROM CARTS_PER_CUSTOMER;