2012-09-11 20 views
0

我需要根據是否爲used/secondhand或新的來自單列price製作兩列。在format列的某處,舊由used表示。其中一個是「價格稅」,其他稅是price。我希望下面的代碼(沒有錯誤,但根據我的要求故障)更好地解釋它。如何在Select語句中使用IF()[控制流函數]大小寫?

情況下,當格式= '%使用%' 或格式= '%二手%' 然後澆鑄(價格AS 無符號整數)其他CAST(價格AS無符號整數)* 0.8端作爲 'PRI的前稅' , CAST(價格作爲無符號整數)的價格

這裏基本上我需要表現出與價格* 0.8的新產品只是price二手產品列和。數據庫中的 format包含已使用物品的信息,如used/secondhand,但沒有用於新的。

我跟着this link 以及一些相關的問題在stackoverflow 但還不足以讓我明白了。 我試圖把輸出放在這裏,但發現很難做到這一點。如果你認爲需要解決它,我會做。

回答

2

This is a great link that teaches Inline IF and CASE statement in MySQL.

代碼片段:

IF Statement

SELECT IF(score > 100, 100, score) AS score 
FROM exam_results 

CASE Statement

SELECT CASE num_heads 
WHEN 0 THEN 'Zombie' 
WHEN 1 THEN 'Human' 
ELSE 'Alien' 
END AS race 
FROM user 
+0

吳宇森謝謝你的快速反應,我能理解這個代碼,但在用'if'來比較'string',我很困惑。考慮到字符串比較是否在其他字符串的中間,如我在代碼中的問題,會有一些幫助嗎? – tough

+1

@tough可以嘗試這段代碼格式樣LIKE'%used%'或格式LIKE'%secondhand%'使用** LIKE **而不是'='(*等號*) –

+0

@tough還要注意,當轉換爲整數,它應該只是'簽名'或'無符號'ex ** CAST(價格AS UNSIGNED)** –