我有一个简单的案例,有人可以帮忙吗? 我在这里有两个表COMPLAINT和HANDLING现在我想从那些带有2个条件的表中选择,其中HANDLING表为null,而来自COMPLAINT的日期是从sysdate超过5天。 如果我使用这样的SQL代码,那将是错误:
您的SQL语法有错误;检查手册 对应于您的MySQL服务器版本,以便使用正确的语法 当B.CID为空时(&SELECT SYSDATE FROM DUAL)附近' CASE A.
SUBMIT_DATE
> 5 TH'在第2行
SELECT * FROM complaint a LEFT JOIN handling b ON a.cid=b.cid
CASE
WHEN B.CID IS NULL AND (SELECT SYSDATE FROM DUAL)- A.`SUBMIT_DATE` > 5
THEN 'OVER'
ELSE 'CLEAR'
END
答案 0 :(得分:1)
您添加的案例陈述位于错误的位置,您无法在加入条款中使用它。
但是如果你想用case选择一些东西那么它必须在select子句中作为
select
*,
case
when b.cid is null and datediff(curdate(),a.SUBMIT_DATE) > 5 then 'OVER'
else 'CLEAR'
end as `some_col_name`
from complaint a LEFT JOIN handling b ON a.cid=b.cid
答案 1 :(得分:0)
Case语句必须在select中,而不是在join之后,如下所示:
SELECT *,
CASE
WHEN B.CID IS NULL AND datediff(curdate(), a.SUBMIT_DATE) > 5
THEN 'OVER'
ELSE 'CLEAR'
END AS 'YOUR_COL'
FROM complaint a LEFT JOIN handling b ON a.cid=b.cid