2017-03-25 108 views
0
SQL> SELECT CUSTOMER.CUSTOMERID, 
    2 BOOKING.EVALUATIONRATING, 
    3 EVENT.EVENTID 
    4 FROM CUSTOMER 
    5 INNER JOIN BOOKING 
    6 ON BOOKING.CUSTOMERID = CUSTOMER.CUSTOMERID 
    7 INNER JOIN EVENT 
    8 ON EVENT.EVENTID=BOOKING.EVENTID 
    9 CASE EVALUATIONRATING 
10 WHEN 0 THEN 'TERRIBLE' 
11 WHEN 1 THEN 'BAD' 
12 WHEN 2 THEN 'MEDIOCRE' 
13 WHEN 3 THEN 'FAIR' 
14 ELSE 'GOOD'; 
CASE EVALUATIONRATING 
* 
ERROR at line 9: 
ORA-00933: SQL command not properly ended 

我在尝试使用连接添加case语句时出错。我想使用案例结构将数字转换为文本。sql case语句sql命令未正确结束错误

+0

我知道没有理由不能在连接命令中使用case语句,但在这种情况下,它看起来像是在试图获取字段结果。如果是这种情况,请按照下面的@ SQLZim的答案。如果不是,请描述更多你想要做的事情。 – SandPiper

回答

2

您的case应以end结尾,并且位于查询的select部分。

SELECT CUSTOMER.CUSTOMERID, 
    BOOKING.EVALUATIONRATING, 
    EVENT.EVENTID, 
    CASE EVALUATIONRATING 
    WHEN 0 THEN 'TERRIBLE' 
    WHEN 1 THEN 'BAD' 
    WHEN 2 THEN 'MEDIOCRE' 
    WHEN 3 THEN 'FAIR' 
    ELSE 'GOOD' 
    END CASE_EVALUATIONRATING 
    FROM CUSTOMER 
    INNER JOIN BOOKING 
    ON BOOKING.CUSTOMERID = CUSTOMER.CUSTOMERID 
    INNER JOIN EVENT 
    ON EVENT.EVENTID=BOOKING.EVENTID; 
相关问题