这个T-SQL SELECT语句中的语法错误是什么?

时间:2013-11-13 02:57:40

标签: sql sql-server tsql

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

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

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

  

Msg 102,Level 15 State 1,Line 6
  ','。

附近的语法不正确

我是SQL的新手,无法解决这个问题。

2 个答案:

答案 0 :(得分:8)

你在案件陈述的末尾错过了“END”。

答案 1 :(得分:1)

你错过了case语句的'End',这就是你得到语法错误的原因。如果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;

希望这有帮助!!!