如何在Select语句中使用IF()[控制流函数]的情况?

时间:2012-09-11 16:28:38

标签: mysql sql select if-statement

我需要从单个列price创建两列,具体取决于它是used / secondhand还是新列。在used列的某处format表示旧的。其中一个是“价格税”另一个是带税的price。我希望以下代码(没有错误,但根据我的要求出现故障)更好地解释了它。

  

格式='%used%'或格式='%secondhand%'然后CAST(价格AS   UNSIGNED INTEGER)否则CAST(价格为AS UNSIGNED INTEGER)* 0.8结束为   'Pris ex Tax',   CAST(价格为AS UNSIGNED INTEGER)为价格

在这里,基本上我需要为新产品显示价格为* 0.8的列,对于旧产品只显示price。 数据库中的format包含用于used / secondhand的已使用文章的信息,但不包含新内容。

我跟着this link 以及stackoverflow中的一些相关问题 但还不足以让我理解。 我试图把输出放在这里,但发现很难做到这一点。如果您认为需要解决它,我会这样做。

1 个答案:

答案 0 :(得分: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