CASE ... WHEN语句 - Oracle SQL

时间:2018-01-15 14:05:22

标签: sql oracle case

使用CASE ... WHEN声明,我有一个艰难的世界。

我正在为公司建立一个小型数据库,我们正在查看销售订单。默认情况下,我们的跟踪系统将我们的订单分为10类,但我们主要关注3:A,B和C订单。我的代码如下:

SELECT 
    ORDER_NUM,
    BUYER_NUM, 
    CREATOR_NUM
    (CASE
        WHEN ORDER_CD = 'A' THEN 'Part'
        WHEN ORDER_CD = 'B' THEN 'Service'
        WHEN ORDER_CD = 'C' THEN 'Labor'
        ELSE 'Other'
    ) AS ORDER_TYPE
FROM tbl_ORDER
WHERE ORDER_DATE > '01-Jan-2017'

但是,我一直收到“Missing Expression”错误。有人可以帮我理解我做错了吗?

谢谢!

1 个答案:

答案 0 :(得分:5)

您错过了END和逗号。我还建议使用ISO标准日期格式:

 SELECT ORDER_NUM, BUYER_NUM, CREATOR_NUM,
        (CASE WHEN ORDER_CD = 'A' THEN 'Part'
              WHEN ORDER_CD = 'B' THEN 'Service'
              WHEN ORDER_CD = 'C' THEN 'Labor'
              ELSE 'Other'
         END) AS ORDER_TYPE
FROM tbl_ORDER
WHERE ORDER_DATE > DATE '2017-01-01';