Access 2010 - 需要用值替换空值

Posted

技术标签:

【中文标题】Access 2010 - 需要用值替换空值【英文标题】:Access 2010 - Need to replace a null with a value 【发布时间】:2011-08-03 06:02:25 【问题描述】:

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

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

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

谢谢提前! 戈登

【问题讨论】:

在 DateDiff 表达式中排除 null 正是我现在试图让它工作的原因。我需要完成的是,如果有一个空值,我需要用 999999 替换它。如果我能够做到这一点,那么当 ORDER BY 运行时,带有 99999 的行将被放置在排序的底部。希望有帮助。谢谢! 【参考方案1】:

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

【讨论】:

我能够使用 SortedTime 创建另一个字段: IIf([TotalTime] Is Null,999999,[TotalTime]) 然后我按该字段排序。谢谢!

以上是关于Access 2010 - 需要用值替换空值的主要内容,如果未能解决你的问题,请参考以下文章

如何在 MS Access 2010 中的单元格中显示空值

用值替换列表中的元素,以新列表结尾

Django - 用值替换“模型对象”

用值替换空的 UITextfield

用值替换 NULL

用值替换整个数据框中的字符串