在SQL中检查不为空?

圣安东尼奥

PostgreSQL 8.4

我有以下一段sql-script:

WHERE p.partner_id IS NOT NULL
    AND (let.external_transaction_registration_date IS NULL OR
 let.external_transaction_registration_date > :date)

它是检查非null还是如果为null的正确方法,那么就不应该使用任何约束吗?PostgreSQL可以evalute的exressionE2(E1 OR E2)即使E1是真的吗?

姿势

PostgreSQL可以evalute的exressionE2(E1 OR E2)(即使E1是真实的)?

可能是。每个规范都是不可预测的

没有定义子表达式的评估顺序。特别是,运算符或函数的输入不必从左到右或以任何其他固定顺序进行求值。

此外,如果只能通过评估表达式的某些部分来确定表达式的结果,则可能根本不会评估其他子表达式。

但是您的表达是安全的,因为

SQL使用具有true,false和null的三值逻辑系统,该系统表示“未知”。

如果是NULL值,则评估为(TRUE OR NULL),即TRUE

实际上,这两个表达式都可以满足您的需求(不是null,或者如果为null,则不应该使用任何约束):

WHERE date_col IS NULL OR date_col > :date
-- vs:
WHERE date_col > :date OR date_col IS NULL

布尔表达式(AND/ OR/NOT在这些条款组合)可以通过布尔代数的法律允许的任何方式进行重组。

这也适用PostgreSQL 8.4

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Android中检查光标为空或不为空?

来自分类Dev

如何检查是否在列表中列出了不为空?

来自分类Dev

如何在Java中检查不为空的字符串?

来自分类Dev

在SQL Server中“不为空”和“ <>空”之间的区别?

来自分类Dev

检查列表是否不为空

来自分类Dev

检查角度模板中的值是否不为空且不为null?

来自分类Dev

在VBA中不为空

来自分类Dev

检查数组为空,但不为空

来自分类Dev

SQL - 如果不为空,则选择不同表中的列

来自分类Dev

即使在 kotlin 中检查不为空后,也需要非空断言

来自分类Dev

SQL EXISTS与聚合不为空

来自分类Dev

在SQL中计数不为空

来自分类Dev

如何检查数组的哪些字段不为空

来自分类Dev

检查多个表格输入值不为空

来自分类Dev

检查arraylist是否不为空Java

来自分类Dev

如何检查方法是否不为空?

来自分类Dev

检查文件存在且不为空

来自分类Dev

我如何检查请求不为空

来自分类Dev

检查多个输入值是否不为空

来自分类Dev

如何检查地方变量不为空?

来自分类Dev

Javascript分配变量并检查不为空

来自分类Dev

sql命令产生在sql server中不为空的空结果

来自分类Dev

返回不为空或空SQL的varchar

来自分类常见问题

在Rails快捷方式中检查是否非零且不为空?

来自分类Dev

JavaScript-检查数组中的所有值是否都不为空-Array / Each /

来自分类Dev

检查具有给定类的表单中的所有输入都不为空

来自分类Dev

对话框中检查文本框不为空时如何保存对话框

来自分类Dev

SQL检查变量中的空值

来自分类Dev

检查并更改SQL中列的空值或空值?