0

我有一个查询,它查看两次并计算差异并将值(以秒为单位)放在另一个字段中。然后我对该字段进行排序。问题是当其中一个时间为空时,新字段中的行未填充,因此当我对行进行排序时,其中没有任何内容被推到顶部。

我想做的是将 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]);

我是个菜鸟,所以需要一只小手握住我的手。

谢谢是提前!戈登

4

1 回答 1

2

您可以使用 NZ() 函数:NZ(MyDate, #1/1/1950#)如果字段为空,则返回 1950 年 1 月 1 日,否则返回字段值。您可以使用 IIF() 和 ISNULL() 函数或 IS NULL 条件获得相同的结果。
在性能方面,使用IIF(myDate IS NULL, #1/1/1950#, myDate)应该是最快的。

于 2011-08-03T15:29:40.177 回答