2016-12-05 49 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;