我遇到错误:
在内部情况下,表达式无效。
在运行mysql时
位置
case
when TBL1.Reissued<>'1'
then
fare IS NOT NULL
AND fare <> 0.00
end
WHERE
fare IS NOT NULL
AND fare <> 0.00
答案 0 :(得分:1)
首先,fare IS NOT NULL AND fare <> 0.00
可以简化为fare <> 0.00
,因为任何条件都将消除NULL
,因为与NULL
值的每个比较都会得出unknown
被认为是错误的。
现在,您可以使用以下条件:
where (TBL1.Reissued<>'1' and fare <> 0.00) or TBL1.Reissued='1'
答案 1 :(得分:0)
对于SQL case
函数,我认为它仅返回一个值或一个表列。请参阅此link,以获取您的信息。
从我的角度来看,您似乎想在某种条件下连接两个表的过程中操作SQL语句。您可以使用left join
来加入它,也可以使用case
来控制所选字段。
希望这可以为您提供帮助。