SQL Server的空值处理策略

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL Server的空值处理策略相关的知识,希望对你有一定的参考价值。

参考技术A   数据完整性是任何数据库系统要保证的重点 不管系统计划得有多好 空数据值的问题总是存在 本文探讨了在SQL Server中处理这些值时涉及的 个问题 计数 使用空表值以及外键处理   用COUNT(*)处理空值         大多数集合函数都能在计算时消除空值 COUNT函数则属于例外 对包含空值的一个列使用COUNT函数 空值会从计算中消除 但假如COUNT函数使用一个星号 它就计算所有行 而不管是否存在空值     如果希望COUNT函数对给定列的所有行(包括空值)进行计数 请使用ISNULL函数 ISNULL函数会将空值替换成有效的值       事实上 对集合函数来说 如果空值可能导致错误结果 ISNULL函数就非常有用 记住在使用一个星号时 COUNT函数会对所有行进行计算 下例演示了空值在AVG和COUNT集合函数中的影响       SET NOCOUNT ON  GO  CREATE TABLE xCount  (pkey INT IDENTITY NOT NULL    CONSTRAINT pk_xCount PRIMARY KEY   Col int NULL)  GO  INSERT xCount (Col ) VALUES ( )  GO  INSERT xCount (Col ) VALUES ( )  GO  INSERT xCount (Col ) VALUES ( )  GO  INSERT xCount (Col ) VALUES (NULL)  GO  SELECT AVG(Col ) AvgWithoutIsNullFunctionOnCol   AVG(ISNULL(Col )) AvgWithIsNullFunctionOnCol   COUNT(Col ) NoIsNullFunctionOnCol   COUNT(ISNULL(Col )) UsingIsNullFunctionOnCol   Count(*) UsingAsterisk  FROM xCount  GO  DROP TABLE xCount  GO    OUTPUT:     lishixinzhi/Article/program/SQLServer/201311/22244

在 iOS、PHP 和 JSON 中使用来自 SQL Server 的空值

【中文标题】在 iOS、PHP 和 JSON 中使用来自 SQL Server 的空值【英文标题】:Using null value from SQL Server in iOS, PHP and JSON 【发布时间】:2012-08-01 20:23:43 【问题描述】:

我正在设计的应用程序使用从 SQL Server 2008 数据库中选择的 PHP 脚本返回的 JSON 对象。我遇到的问题是,当数据库缺少某个字段的值时,它在 JSON 中返回为 null。然后当应用程序解析 JSON(我正在使用 NSJSONSerialization)时,字典包含一个值。使用此字典填充我的视图时,应用程序在遇到空值时崩溃。

绕过这个问题的最简单方法是什么?我想我可以在 PHP 将数据返回为 JSON 之前用空字符串替换所有空值;但是,这可能不是最好的解决方案。有没有简单的方法来检查 iOS?

感谢您的帮助。

【问题讨论】:

【参考方案1】:

要检查空值,您需要查看对象是否为[NSNull null]

id object = [dict objectForKey:@"key"];
if(object == [NSNull null])

    //Handle null value

【讨论】:

有没有办法检查整个字典?还是我必须用钥匙拉出一个物体然后检查? 您必须检查每个对象,您可以在解析 json 后立即检查每个对象并删除/替换为默认值,或者将 NSNull 处理添加到使用并显示值的任何类。 这很糟糕!我知道没有其他方法,但认为您必须明确检查空值。只是想知道为什么 iOS 不像 Android 那样将 null 视为 nil !问题是如果我们执行 NSArray *array = [dict objectForKey:@"key"];并且值为null,它将NSNull对象分配给数组,我们不能使用条件if(array && [array count] > 0),因为NSNull不是nil,并且NSNull不响应count,App会崩溃!我最终在我的代码中为每一个都编写了宏。

以上是关于SQL Server的空值处理策略的主要内容,如果未能解决你的问题,请参考以下文章

pandas 怎么处理表格中的空值

从sql table处理PSCustomObject中的空值。无法转换对象

那些年我们踩过的坑,SQL 中的空值陷阱!

那些年我们踩过的坑,SQL 中的空值陷阱!

SQL Server数据库C#中的空值

在 iOS、PHP 和 JSON 中使用来自 SQL Server 的空值