我正在开发一个使用 SQL Server Compact 数据库的 C# 程序。我有一个查询,我想在其中选择特定字段中的最高数字,如下所示:
SELECT MAX(nr2) FROM TABLE WHERE nr1 = '10'
当有一行 nr1 为 10 时,这会按预期工作。但是当该行不存在时,我希望不会得到答案,而是得到一个空字段。所以在我的 C# 代码中我有:
text = result[0].ToString();
当我从我的 SQL 查询中获取一个值时,该字符串包含一个数字,而当指定的行不存在时,我得到一个空字符串。
这并不是什么大问题,但我可以进行以下检查:
if (result.Count > 0)
代替:
if (result[0].ToString() == "")
我现在必须这样做,因为计数总是大于 0。
谈论使用大锤敲碎坚果,但是......
我没有使用 C# 代码对其进行测试,但在 SQL Server Management Studio 中,如果您运行...
SELECT MAX(nr2) FROM TABLE WHERE nr1 = '10' HAVING MAX(nr2) IS NOT NULL
,结果是一个空集合,而不是一个包含一个 null(或空)元素的集合。
注意:我的回答是基于这个 SO Answer .似乎 MAX
和 COUNT
SQL 函数总是返回单个行集合。
我是一名优秀的程序员,十分优秀!