使用NULL时与AND和OR混淆

眼豆

我不是受过训练的SQL人员,但通常可以编写基本查询。但这使我感到困惑。

该表的子集为:

fldUID (auto-increment unique)
fldSrcAddress
fldDstAddress
fldSrcDNSHost
fldDstDNSHost

我正在尝试检索确实具有fldSrcAddress或fldDstAddress的记录的fldUID,并且fldSrcDNSHost为NULL或fldDstDNSHost为NULL。

我的查询是:

SELECT top 1 fldUID, fldSrcAddress, fldDstAddress
From tbl_ExtLog_FirewallTraffic
Where fldSrcAddress Is Not Null or fldDstAddress is not null
And (fldSrcDNSHost Is Null Or fldDstDNSHost is null )
order by fldUpdateTimeStamp asc

但是查询返回fldUID 32831,即:

Example Data: 
fldUID = 32831
fldSrcAddress = 192.168.1.100
fldDstAddress = 192.168.2.69
fldSrcDNSHost = Asus
fldDstDNSHost = Lucifer

字段2和3都有数据(因此很有意义)。但是字段4和5也有数据,但是我的查询正在尝试查找其中字段4或5为NULL的记录。

显然是一个愚蠢的错误-任何帮助将不胜感激。

谢谢

伊恩

Prabhat G

可能是括号问题。

试试这个 :

SELECT top 1 fldUID, fldSrcAddress, fldDstAddress
From tbl_ExtLog_FirewallTraffic
Where (fldSrcAddress Is Not Null OR fldDstAddress is not null)
And (fldSrcDNSHost Is Null Or fldDstDNSHost is null )
order by fldUpdateTimeStamp asc

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用 == 符号时的 if 和语句混淆

使用packageName和Classloader实例化JAXBContext时混淆ClassNotFoundException

使用端口号和http时出现混淆

使用圆括号与和或混淆

当groovy决定使用double值和BigDecimal值时,混淆使用double值?

使用组件时(特别是嵌套的)属性,数据和计算值的混淆

使用 SUM 和 SUMIF 时,Excel 会混淆单元格内容

使用递归时对返回语句的混淆

&& 和 | 的混淆使用 运营商

混淆&&和||的使用 经营者

将Promise与resolve()和then()方法的使用混淆

与和操作符的使用混淆

与Python混淆使用loop和range()

与使用 Break 和嵌套 if 语句的混淆

创建数据类型和 monad 时的错误和混淆

使用.apply(pd.Timestamp)时如何指定日期标准。Python在11/12/2018中混淆了日期和月份

在 Python 中解析日期时混淆日期和月份

“ sudoed”时创建文件会混淆权限和用户

Proguard:如何避免收缩(和混淆)整个包装,以避免删除(并混淆)“未使用的方法”?

尝试合并orderByChild()和startAt()时使用null获得值

使用Springboot和Elide时EntityManagerFactory为null

在 python 中使用 random.choices() 时收到的输出混淆

使用progaurd混淆JNA结构时,getFieldOrder()中的异常

在构造函数中使用call()时与'this'关键字混淆

使用Proguard混淆基于Appium的jar时重复类定义

混淆使用 Mypy 和类继承 - 列表与序列

使用Python混淆文件功能和附加功能

反冲\和逃逸\以及\\的使用之间的混淆

在C#中正确使用依赖注入和YAGNI混淆