我在MySQL中使用这种情况:
select name, age, time, countDay, dvt, total, dateLogin,
(total - datediff(NOW(), dateLogin)) as totalVal18,
(total - age) as totalVal22
case dvt
when dvt = 0 then countDay = totalVal18
when dvt = 1 then countDay = totalVal22
更新1:
结构表是:dvt, total, countDay
是double
类型。
dateLogin
是datetime
类型。
用户输入为dateLogin
和age
。
使用countDay
输出以检查值。像:
where countDay >= 18
。
dvt
是tinyint
。 dvt
就像age > 18
或age < 18
错误如:
像case dvt
when dvt = 0 then at line 2
使用公式时会发生错误吗?如何在case when
MySQL中使用公式?
答案 0 :(得分:2)
您错误地合并了案例结构的两个版本。
使用
case dvt
when 0 then totalVal18
when 1 then totalVal22
end as countDay
或者
case
when dvt = 0 then totalVal18
when dvt = 1 then totalVal22
end as countDay
形式。见mysql's documentation on case
更新
您不能以这种方式使用列别名,您还需要在case语句中包含公式。
答案 1 :(得分:1)
检查此示例此处表格是指您的表格名称
SELECT CASE
WHEN dvt > 18 THEN 1
ELSE 0 END AS
countDay
FROM table