2017-03-25 154 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; 
相關問題