-1

我想知道是否有人可以帮助我解决这个语法错误。

SELECT  PROVINCE,
        CASE PROVINCE
            WHEN 'BC'   THEN .12
            WHEN 'AB'   THEN .08
            WHEN 'ON'   THEN .07
            ELSE 0,
        AMOUNT
FROM SALES

当我执行上面的 SQL 时,我得到一个语法错误:

消息 102,级别 15 状态 1,第 6 行
',' 附近的语法不正确。

我是 SQL 新手,无法弄清楚这一点。

4

2 回答 2

8

您在 case 语句的末尾缺少“END”。

于 2013-11-13T02:59:32.557 回答
1

您缺少 case 语句的“结束”,这就是您收到语法错误的原因。如果 AMOUNT 是 Sales 表中的列,那么您应该写成:

SELECT  PROVINCE,
        CASE PROVINCE
            WHEN 'BC'   THEN .12
            WHEN 'AB'   THEN .08
            WHEN 'ON'   THEN .07
            ELSE 0 
            End as 'NewColumnName',
        AMOUNT
FROM SALES;

如果您想将 AMOUNT 作为案例条件的列名,那么您应该编写如下:

SELECT  PROVINCE,
        CASE PROVINCE
            WHEN 'BC'   THEN .12
            WHEN 'AB'   THEN .08
            WHEN 'ON'   THEN .07
            ELSE 0 end as
        AMOUNT
FROM SALES;

希望这可以帮助!!!

于 2013-11-13T06:57:32.590 回答