1

我试图IF在我的SELECT声明中包含一个,同时定义一个临时列。

这就是我现在正在尝试的:

SELECT *, IF A > 0, A, 0.5 AS Popularity FROM Visits

它是如何正确完成的?

4

3 回答 3

3

你想做:

SELECT *, IF (A > 0, A, 0.5) AS Popularity FROM Visits
于 2012-09-14T05:05:37.750 回答
2

您正在使用存储过程中使用的 IF 语法。对于 SELECT 使用,它必须是函数版本

SELECT *, IF(A>0, A, 0.5) AS Popularity ...
于 2012-09-14T05:06:09.177 回答
2

在其他 DBMS 中工作的替代方案是

SELECT CASE WHEN ( a > 0 ) THEN a ELSE 0.5 END AS popularity FROM visits
于 2012-09-14T05:07:39.487 回答