【发布时间】:2019-10-05 14:51:14
【问题描述】:
如何使条件可选?
也就是说,如果where子句的某个条件为FALSE,那么如何用最简单的方式忽略这个条件呢?
我的代码的预期结果是,
RR
--
100
200
我的代码是,
WITH DATASET AS (
SELECT 1 A, 10 B, 100 RR FROM DUAL
UNION
SELECT NULL A, 10 B, 200 RR FROM DUAL
)
SELECT RR
FROM DATASET
WHERE
A=2 -- How to make this condition optional(that is, as 2 is not found then,ignoring this condition)
AND
B=10
;
【问题讨论】:
-
OR代替AND不起作用吗?或者你必须更好地解释你想要什么。 -
将其设为“可选”是什么意思?如果我们按字面解释,它应该意味着您可以简单地从
where子句中完全删除该条件。可能不是你真正的意思。根据您提供的数据,也许您的意思是 A 应该是 2 或者 A 应该是NULL?请澄清。另外,请注意WHERE子句中的要求称为条件,而不是约束。这很重要,因为“约束”在 Oracle 中也是一个技术词,具有完全不同的含义。我将编辑您的帖子以更正。
标签: sql oracle select where-clause