【问题标题】:Null vs empty field in database数据库中的空字段与空字段
【发布时间】:2010-09-30 10:43:16
【问题描述】:
我有从另一个表导入数据的数据库。如果那里的数据为空。所以在导入到这里时它变成了空值。当我查询诸如名称不以'a'开头的列时,它应该返回名称不以'a'开头的所有记录。包括 NULL/空列。它返回的空记录但不为空。但我也需要空字段。我使用hibernate和sqlserver 2005。如何实现这个。?请帮助。
谢谢
【问题讨论】:
标签:
sql-server-2005
hibernate
【解决方案1】:
Null 和 Empty 是不同的东西。
当您说“检索所有不以 a 开头的条目”时,这意味着它将检索所有带有 something 而不是a 的条目。 Null 不是什么东西。 Null 什么都不是。 Empty 有点意思。
您应该修改您的查询以添加OR IS NULL,以检索空字段。
【解决方案2】:
From Wiki:
Null 是结构化查询语言 (SQL) 中使用的特殊标记,用于指示数据库中不存在数据值。由关系数据库模型的创建者介绍...
...由于 Null 不是任何数据域的成员,因此它不被视为“值”,而是指示不存在值的标记(或占位符)。因此,与 Null 的比较永远不会导致 True 或 False,但总是会产生第三个逻辑结果,即 Unknown。
查看此discussion。