我不是受过训练的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的记录。
显然是一个愚蠢的错误-任何帮助将不胜感激。
谢谢
伊恩
可能是括号问题。
试试这个 :
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] 删除。
我来说两句