CASE语句不起作用

时间:2016-05-30 07:51:52

标签: mysql sql

我正在尝试从MySQL数据库中选择数据。如果数据可用,我的数据库需要用符号响应。如果记录中没有数据,我的数据库应该响应一个空记录(没有符号)。

我正在使用以下SQL语句:

SELECT price1
    CASE 
        WHEN price1 IS NOT NULL THEN CONCAT('€ ', price1)
    END as price1 
FROM pricelist 
WHERE id=1

当我运行此SQL语句时,出现错误。

有人知道我的代码有什么问题吗?

2 个答案:

答案 0 :(得分:3)

这是一个错字,您在,之后缺少逗号 - price1

除此之外,我将您的新列名从price1更改为new_price1,因为选择两个具有相同名称的列没有多大意义(可能会造成一些麻烦,尤其是如果您想要通过其中一个进行过滤)

SELECT price1,
    CASE 
        WHEN price1 IS NOT NULL THEN CONCAT('€ ', price1)
    END as new_price1 
FROM pricelist 
WHERE id=1

其他选项是您不打算选择price1,所以:

SELECT CASE WHEN price1 IS NOT NULL
             THEN CONCAT('€ ', price1)
        END as new_price1 
FROM pricelist 
WHERE id=1

答案 1 :(得分:0)

正如已经回答的那样,如果你保留两列,你需要一个逗号(,),但我想你想改变price1的值。

SELECT 
    CASE 
        WHEN price1 IS NOT NULL THEN CONCAT('€ ', price1)
        ELSE '' --or null or....
    END as price1 
FROM pricelist 
WHERE id=1