[英]How to use case statement in where condition?
I need to use the CASE statement in the WHERE clause like: 我需要在WHERE子句中使用CASE语句,例如:
WHERE p.resource_qry_seq = b.resource_qry_seq
AND p.resource_id = b.resource_id
AND (CASE
WHEN b.flexible_time IS NULL THEN
((b.activity_start >= p.activity_start AND b.activity_end < p.activity_end) OR
(b.activity_start > p.activity_start AND b.activity_end <= p.activity_end))
ELSE
b.activity_start > p.late_start
END)
I'm getting, 'missing right parenthesis' How to include such conditions according to a value in a column? 我正在“缺少正确的括号”如何根据列中的值包括这些条件?
The predicate of a CASE
expression (ie what comes after THEN
) has to be a value, rather than logic. CASE
表达式的谓词(即THEN
之后的谓词)必须是值,而不是逻辑。 You can rephrase your WHERE
clause as follows: 您可以重新定义您的
WHERE
子句,如下所示:
WHERE
p.resource_qry_seq = b.resource_qry_seq AND
p.resource_id = b.resource_id AND
((b.flexible_time IS NULL AND
(b.activity_start >= p.activity_start AND b.activity_end < p.activity_end) OR
(b.activity_start > p.activity_start AND b.activity_end <= p.activity_end)) OR
(b.flexible_time IS NOT NULL AND b.activity_start > p.late_start))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.