我正在尝试在我的IF
语句中包含SELECT
,同时定义一个临时列。
这就是我现在正在尝试的事情:
SELECT *, IF A > 0, A, 0.5 AS Popularity FROM Visits
如何正确完成?
答案 0 :(得分:3)
你想这样做:
SELECT *, IF (A > 0, A, 0.5) AS Popularity FROM Visits
答案 1 :(得分:2)
您正在使用存储过程中使用的IF语法。对于SELECT使用,它必须是function version:
SELECT *, IF(A>0, A, 0.5) AS Popularity ...
答案 2 :(得分:2)
在其他DBMS中有效的替代方法是
SELECT CASE WHEN ( a > 0 ) THEN a ELSE 0.5 END AS popularity FROM visits