将 AND 运算符替换为 OR 以获得相同的输出

Replace AND operator with OR to get the same output

提问人:Victoria 提问时间:9/27/2019 最后编辑:Salman AVictoria 更新时间:9/27/2019 访问量:1109

问:

我有这个代码:

IF (x>5 AND y=4) THEN
    dbms_output.put_line("Y");
ELSE
    dbms_output.put_line("N");

我的问题是:如果不能使用 AND 作为运算符,而是必须使用 OR 才能具有相同的逻辑并获得相同的结果,您如何更改代码?

SQL 布尔代数

评论

0赞 Gordon Linoff 9/27/2019
OR不会返回相同的结果,所以我不明白这个问题。
0赞 Victoria 9/27/2019
我从我的高级同事那里收到了这个任务:你如何转换这个条件:x>5 AND y=4 如果你不能使用 AND 运算符,而只能使用 OR

答:

0赞 Verma Ashish 9/27/2019 #1

Or 和 AND 运算符具有完全不同的逻辑,您不能使用 AND 作为运算符,而是必须使用 OR 才能具有相同的逻辑并获得相同的结果。

1赞 Murmix 9/27/2019 #2

您可以使用德摩根定律来重写它:

NOT (p AND q) == (NOT p) OR (NOT q)

所以,就你而言

IF (x>5 AND y=4) THEN "Y" ELSE "N"
IF (x<=5 OR y<>4) THEN "N" ELSE "Y"
0赞 gustible 9/27/2019 #3

如果将行更改为如下所示,则它只能使用 OR 运算符:

如果 (x<=5 或 y!=4) 则 dbms_output.put_line(“N”);ELSE dbms_output.put_line(“Y”);=

结果是一样的,但逻辑略有不同。