SQL:选择(null = null);

tan*_*rli 7 sql postgresql-8.4

这个问题出自我正在研究的数据库考试,所以在真实情况下可能没有任何东西可以使用......

以下有效SQL语句产生什么输出?解释你的答案!

SELECT(NULL = NULL);

我可以很容易地生成语句的输出,即

school=> select (null = null);
 ?column?
----------

(1 row)

在psql 8.4.11中,但是如何以及为什么这是我不知道的答案...我猜它会尝试评估括号内的表达式并提出真/假,但显然它没有.

有关它为何如此行为的任何提示?

谢谢

Ode*_*ded 7

NULL代表"未知价值".不知道值是真还是假或其他任何东西.

那么,在比较两个未知值时,答案是什么?UnknownA是否等于UnknownB?

回答?未知...

以下是SQL Server的示例:

IF (NULL = NULL)
  PRINT 'Equals'

IF (NULL != NULL)
  PRINT 'Not Equals'


IF (NULL IS NULL)
  PRINT 'IS'

IF (NULL IS NOT NULL)
  PRINT 'IS NOT'
Run Code Online (Sandbox Code Playgroud)

唯一被印刷的东西: IS