我有一个查看两次的查询并计算差异并将值(以秒为单位)放在另一个字段中。然后我对那个领域进行排序问题是当其中一个时间为空时,新字段中的行未填充,因此当我对它们进行排序时,其中没有任何内容被推到顶部。
我想要做的是用另一个值替换null。像9999999这样的东西。当我执行排序时,现在有999999的行将放在排序的底部。
以下是查询的SQL表达式。
SELECT FOCFClassic.FirstName, FOCFClassic.LastName, FOCFClassic.[Bib#], FOCFClassic.[2011SDStartTime], FOCFClassic.[2011SDFinishTime], Diff2Dates("ns",[FOCFClassic].[2011SDStartTime],[FOCFClassic].[2011SDFinishTime]) AS 2011SDRunTime, FOCFClassic.SDCategory, FOCFClassic.Team, FOCFClassic.SDRank, DateDiff("s",[2011SDStartTime],[2011SDFinishTime]) AS TotalTime
FROM FOCFClassic
WHERE (((Diff2Dates("ns",[FOCFClassic].[2011SDStartTime],[FOCFClassic].[2011SDFinishTime]))<>"") AND ((DateDiff("s",[2011SDStartTime],[2011SDFinishTime])) Is Not Null))
ORDER BY FOCFClassic.SDRank, DateDiff("s",[2011SDStartTime],[2011SDFinishTime]);
我这是一个菜鸟,所以需要一点手拿着我。
谢谢你提前! 戈登
答案 0 :(得分:1)
您可以使用NZ()函数:如果字段为空,NZ(MyDate, #1/1/1950#)
将返回1950年1月,否则返回字段值。使用IIF()和ISNULL()函数或IS NULL条件可以获得相同的结果
在性能方面,使用IIF(myDate IS NULL, #1/1/1950#, myDate)
应该是最快的。