2016-05-30 173 views
2

我想從我的MySQL數據庫中選擇數據。如果數據可用,我的數據庫需要用符號響應。如果記錄中沒有數據,我的數據庫應該回應一個空記錄(沒有符號)。CASE語句不起作用

我使用下面的SQL語句:

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

當我運行該SQL語句,我得到一個錯誤。

有人知道我的代碼有什麼問題嗎?

+0

你得到了什麼錯誤?請發佈錯誤消息。 –

+6

大小寫之前缺少逗號。 – jarlh

+0

此外,這是一個案例表達式,而不是一個案例... – jarlh

回答

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 
+0

我得到兩個記錄。一個帶符號,一個沒有符號 – John

+0

第二個工作。謝謝 – John

+0

一切都是解釋隊友@約翰,沒問題。 – sagi

0

前面已經回答了,如果保持兩列,你需要一個逗號( ,),但我認爲你想改變price1的價值。

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