SQL中的布尔逻辑

时间:2017-02-15 08:13:49

标签: sql

我必须在表格上添加一个检查约束来执行以下操作:

在租户中,如果LeaseExpirationDate不为NULL,则它必须晚于LeaseStartDate。

我只是想知道,我可以在SQL中使用以下内容吗?

P:LeaseExpirationDate不为空 T:LeaseExpirationDate晚于LeaseStartDate

P-> T == - P OR T

真相表

P     T      P->T=-P OR X
T      F             F
F      U            T
T      T             T

我不确定我们是否可以使用三个有价值的逻辑来执行后者,但看起来它符合条件。

1 个答案:

答案 0 :(得分:2)

利用SQL的三值逻辑以及检查约束不需要FALSE而不是TRUE来传递:

CHECK (LeaseExpirationDate > LeastStartDate)

如果LeaseExpirationDateNULL,则整个条件的评估结果为UNKNOWN。哪个不是FALSE,因此不会违反约束。