Spe*_*cer 15 mysql sql null mysql-error-1064
我正在尝试计算一个字段,我希望它的行为不同,具体取决于其中一列是否为空.我正在使用MySQL
CASE
WHEN reply.replies <> NULL THEN
24/((UNIX_TIMESTAMP(NOW())-UNIX_TIMESTAMP(qcr.LAST_MOD_TIME)+3600)/3600)*(ces.EXPERT_SCORE+2.5*scs.SIMILARITY)*(EXP(-reply.replies))
ELSE 1
END as ANSWER_SCORE
Run Code Online (Sandbox Code Playgroud)
这是正确的语法吗?
Joe*_*lli 26
你需要拥有 when reply.replies IS NOT NULL
NULL是SQL中的一种特殊情况,无法与=或<>运算符进行比较.改为使用IS NULL和IS NOT NULL.
case when reply.replies IS NOT NULL ...
Run Code Online (Sandbox Code Playgroud)
您不能将NULL与常规(算术)比较运算符进行比较。任何算术比较为NULL将返回NULL,甚至NULL = NULL或NULL <> NULL将产生NULL。
使用IS或IS NOT代替。
| 归档时间: |
|
| 查看次数: |
62177 次 |
| 最近记录: |