Plsql (a==1&;a==2&;a==3)是否在pl sql中计算为true?

Plsql (a==1&;a==2&;a==3)是否在pl sql中计算为true?,plsql,oracle11g,Plsql,Oracle11g,就像这里的一些问题一样,(a==1&&a==2&&a==3)已经被证明可以在javascript中计算为true,我只是想知道在PL/SQL中是否也有一种方法可以计算为true。当然只是为了好玩 SQL> create or replace 2 package pkg is 3 x int := 0; 4 end; 5 / Package created. SQL> SQL> create or replace 2 function a r

就像这里的一些问题一样,(a==1&&a==2&&a==3)已经被证明可以在javascript中计算为true,我只是想知道在PL/SQL中是否也有一种方法可以计算为true。

当然只是为了好玩

SQL> create or replace
  2  package pkg is
  3    x int := 0;
  4  end;
  5  /

Package created.

SQL>
SQL> create or replace
  2  function a return number is
  3  begin
  4    pkg.x := pkg.x + 1;
  5    return pkg.x;
  6  end;
  7  /

Function created.

SQL>
SQL>
SQL> set serverout on
SQL> begin
  2   if a = 1 and a = 2 and a = 3 then
  3     dbms_output.put_line('BINGO!');
  4   end if;
  5  end;
  6  /
BINGO!

PL/SQL procedure successfully completed.

如果
a
是数字列,则“否”,则表达式的计算结果永远不能为true。如果
a
不是数字,我认为查询甚至不会运行。在MySQL上可能是这样。一个变量怎么可能同时有3个不同的值?@TimBiegeleisen-ahh。谢谢兄弟。我认为它可以通过某种方式。我知道这些答案(巧妙地)使用模棱两可的人类语言和数据类型来获得答案。从纯粹的逻辑意义上讲,表达式永远不可能为真,但由于您没有指定
a
的数据类型,下面我们已经有了一个答案,使该表达式为真。我认为这在许多语言中都可以评估为真。“a”不需要特别指定为变量。它可以是任何表达式,函数可以返回一些东西来实现这一点,正如Connor所展示的。我刚刚投了反对票。伟大的答案说明,即使人类是模棱两可的,数据库也不是!!