access 查询空值和null值null与空的区别别

服务不可用。二次元同好交流新大陆
扫码下载App
汇聚2000万达人的兴趣社区下载即送20张免费照片冲印
扫码下载App
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!&&|&&
  职业:财务会计。爱好中国象棋,喜欢到弈天棋缘、联众下棋。
很喜欢VB程序设计,把VB程序设计与Office VBA当作一种娱乐。
学习学习再学习,提高提高再提高!
LOFTER精选
网易考拉推荐
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
阅读(4413)|
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
历史上的今天
loftPermalink:'',
id:'fks_082',
blogTitle:'如何让access空值变成0?(确切的说是让access Null值变成0)',
blogAbstract:'
方法一if& IsNull(Me.新_退休费) = True Then Me.新_退休费 = 0
方法二if Nz(Me.原_退休费) = Me.原_退休费 Then Me.原_退休费 = 0
有些时候,一些初接触Access的朋友容易犯这样的错误:if& Me.新_退休费 = \"\" Then Me.新_退休费 = 0&
以下是Access帮助中NZ的内容
blogTag:'nz,函数,variant,表达式,null',
blogUrl:'blog/static/',
isPublished:1,
istop:false,
modifyTime:5,
publishTime:4,
permalink:'blog/static/',
commentCount:1,
mainCommentCount:1,
recommendCount:1,
bsrk:-100,
publisherId:0,
recomBlogHome:false,
currentRecomBlog:false,
attachmentsFileIds:[],
groupInfo:{},
friendstatus:'none',
followstatus:'unFollow',
pubSucc:'',
visitorProvince:'',
visitorCity:'',
visitorNewUser:false,
postAddInfo:{},
mset:'000',
remindgoodnightblog:false,
isBlackVisitor:false,
isShowYodaoAd:true,
hostIntro:'  职业:财务会计。爱好中国象棋,喜欢到弈天棋缘、联众下棋。\r\n
很喜欢VB程序设计,把VB程序设计与Office VBA当作一种娱乐。\r\n
学习学习再学习,提高提高再提高!',
hmcon:'1',
selfRecomBlogCount:'0',
lofter_single:''
{list a as x}
{if x.moveFrom=='wap'}
{elseif x.moveFrom=='iphone'}
{elseif x.moveFrom=='android'}
{elseif x.moveFrom=='mobile'}
${a.selfIntro|escape}{if great260}${suplement}{/if}
{list a as x}
推荐过这篇日志的人:
{list a as x}
{if !!b&&b.length>0}
他们还推荐了:
{list b as y}
转载记录:
{list d as x}
{list a as x}
{list a as x}
{list a as x}
{list a as x}
{if x_index>4}{break}{/if}
${fn2(x.publishTime,'yyyy-MM-dd HH:mm:ss')}
{list a as x}
{if !!(blogDetail.preBlogPermalink)}
{if !!(blogDetail.nextBlogPermalink)}
{list a as x}
{if defined('newslist')&&newslist.length>0}
{list newslist as x}
{if x_index>7}{break}{/if}
{list a as x}
{var first_option =}
{list x.voteDetailList as voteToOption}
{if voteToOption==1}
{if first_option==false},{/if}&&“${b[voteToOption_index]}”&&
{if (x.role!="-1") },“我是${c[x.role]}”&&{/if}
&&&&&&&&${fn1(x.voteTime)}
{if x.userName==''}{/if}
网易公司版权所有&&
{list x.l as y}
{if defined('wl')}
{list wl as x}{/list}Access俱乐部
Access入门经典视频《运用Access实现降本增效》(免费)[] | 免费《Access五节必修课》[]
?&&&&?&&&&?&&&&?&&&&
您的位置:  > >
在查询中显示某字段为空值的记录|查询条件为空用IS Null
来源:&&点击数:6470&&评论数:3 &|&&|&
时 间: 10:11:39
作 者:&&&ID:30275&&城市:常州
摘 要:在查询中显示某字段为空值的记录
&以上,在条件中选择 fini-date =null 时,为什么不能显示表中的记录4?
麻烦哪个好心人告诉我下,新问题,简单的问题
经过老师指点&& 将条件 =Null& 改成 IS Null&& 解决了
Access软件网官方交流QQ群 (群号:)
      
&&&&【&&】&&&&【&&】&&&&【&&】&&&&【&&】&&&&【&&】
Access网店
价格:¥100 元
价格:¥100 元
价格:¥1 元
(5-29&22:04)
(5-29&16:28)
(5-29&11:54)
(5-29&08:56)
(5-28&19:36)
(5-28&15:41)
(5-28&12:41)
(5-28&08:28)
(5-27&21:45)
(5-27&16:36)
Access软件网 版权所有 CopyRight
提供支持 本站特聘法律顾问: 李慧 律师常用教程:
您现在的位置: > 教程 >
正确理解数据库中的空值null
10:00:14 | 浏览次数 | 9847 | 标签
  数据库中的数据表,每个字段都可以设置不同的数据类型。
  而某些数据库字段,默认产生的值就是空值,空值在显示的时候,是通过NULL来显示的。
  所以,很多人都对“空值”产生疑问,例如通过编程新建的一个表,表中所有数据皆显示为NULL,手动添加并删除文字后又变成了空白;一个字符串类型的字段,明明没有填值,却不等于"";用ADO.NET从数据库中取值,又会出现错误。
  一切问题的根源在于空值的误解及应用。这需要我们正确认识.NET和SQL Server中几种不同的“空值”。
  ①真正的空值
  等同“没有输入的值”,可以出现在大多数类型的字段中(除非默认不允许为空),SQL server中表示为null,显示为NULL,手工在SQL server企业管理器中输入的方法是按Ctrl+0。它在.NET中对应System.DBNull.Value。
  在T-SQL命令中,判断一个值是不是空值,要用“is null”而不是“= null”;处理空值有个ISNULL函数,它使用指定的值替换null。用ADO.NET从数据库得到的空值无法自动转化为空字符串或Nothing,须手动检测:如果得到System.DBNull.Value,则赋给数据对象Nothing或其它自定义的有意义的值。
  ②空字符串(零长度字符串)
  只出现在字符串类型(如nvarchar)的字段中,SQL server中表示为' ',显示为空白,手工在SQL server企业管理器中输入时清空一个单元格即可。它在.NET中对应System.String.Empty,也就是我们常用的""。在T-SQL命令中处理空字符串和处理一般的字符串没什么区别。用ADO.NET从数据库得到的空字符串也和一般的字符串没什么区别。
  相关的概念还有VB.NET中的Nothing和对应于C#.NET中的null(注意这个null是C#.NET中的null而非SQL Server中null),它们在.NET中是表示不引用任何对象的空引用的值,在传入SQL server时,根据不同的上下文环境,可能存为真正的空值(比如在更新一个字符串类型的字段值时),也可能调用在SQL server中自定义的默认值(比如传给一个有默认值的存储过程参数),也可能因为无法进行类型转换而引发.NET异常。因此在用ADO.NET向SQL server中存储数据时,大家一定要小心使用Nothing。
  ③举例应用:如何检索到数据库中的空值和null
  数据库中没有的值分为这么几种:
  (1)NULL 如果看上去单元格是空白的,那就是NULL值。
  (2) 0 偶尔一些单元格会默认为'0',这个0可能是char也可能是int,所以分0,'0'(即单引号+0)。
  (3)null 此null非彼NULL,这个null是'null'(即单引号+null).本人就遇到过一次,在代码中,所有为空的值都用null填充,本意是填充为NULL,结果最后都成了'null',就是四个字母组成的字符串。
  要将以上三条都检索出来,可以用下面的句子,即使你不是3点全符合也可以用,反正不漏掉一个就好。
  SELECT id_GradeBase,id_College,id_MajorSecMajor&   FROM XsStu  WHERE id_GradeBase ='0' or& id_College='0' or id_MajorSecMajor ='0' or ISNULL(id_GradeBase,'') + '' = '' or&   ISNULL(id_College,'') + '' = '' or& ISNULL(id_MajorSecMajor,'') + '' = '' or id_GradeBase ='null' or id_College ='null' or   id_MajorSecMajor ='null'
写得太好了,总结得相当精辟,辛苦了,非常有用。
有问题请联系QQ:。
扫码与朋友分享您所在的位置: &
避免Access和SQL Server的空值冲突
避免Access和SQL Server的空值冲突
ZDNet China
在链接到一个SQL Server数据库的Access项目(即.adp文件)中,你平时经常使用的Access函数通常是不支持的。但大多数时候,都可换用SQL Server支持的一个Transact-SQL(T-SQL)函数。一个特例是Access的空值(Null)函数Nz和IsNull;它们的功能相似,但并不是Access和T-SQL都能支持它们。本文要讨论在什么时候以及如何使用这两个函数来处理空值。
在链接到一个SQL Server数据库的Access项目(即.adp文件)中,你平时经常使用的Access函数通常是不支持的。但大多数时候,都可换用SQL Server支持的一个Transact-SQL(T-SQL)函数。一个特例是Access的空值(Null)函数Nz和IsNull;它们的功能相似,但并不是Access和T-SQL都能支持它们。本文要讨论在什么时候以及如何使用这两个函数来处理空值。
空值的重要性
空值是完全合法的数据库录入项,它们能提供的信息可能超过你的想象。空值指明一个值是未知的,但这并不是说该值不可接受或者不存在。空值表明一个值尚未确定,而且除非确定了合适的值,否则该值将保持未知状态,也就是为一个空值。
开发者的职责是判断空值可能在什么时候出现,并针对性地处理那些值。一个方案是在数据输入时拒绝空值,从而完全回避它们。但这样一来,你的数据将完全禁止空值,所以该方案的缺点在于,在你创建一条记录时,所有数据都必须是已知的。遗憾的是,对于大多数人来说,这个方案都不现实。以医院急诊室的数据库系统为例,是不是因为数据录入员不知道一个病人的中间名,就拒绝为其创建一条记录呢?所以,对空值进行妥善处理可提供更灵活的方案,因为即使数据录入员当时不知道所有数据,也能成功地创建记录。认识到空值无法避免之后,你的职责就是正确处理它们,确保它们不会导致错误。正确处理空值有两方面的好处:
可与用户共享有意义的信息。
可提前捕捉空值,避免空值在后续的表达式中返回错误。 Access 中的空值 Access提供大量工具来操纵空值:
Is Null――在条件表达式和SQL WHERE子句中使用Is Null。
IsNull――将IsNull用于Visual Basic for Applications(VBA)。
Nz――遇到空值时,用Nz返回除Null之外的其他值。
以上函数在本质上存在细微差异。Is Null和IsNull捕捉空值;而Nz函数处理空值。换言之,如果想返回的不是实际存储的空值,就使用Nz。例如,你可显示一个简单字符串(例如"N/A"),让用户知道数据对于当前记录来说“不可用”。另外,当空值在表达式中使用之前,你可以捕捉空值,因为空值经常会返回错误。通过链接表或者Access项目来使用Access和SQL Server时,会产生一个问题,因为Access和SQL Server不是用相同的函数来判断空值。因此,你必须知道要使用什么函数,以及在什么时候使用。在.mdb文件中使用Nz 大多数Access用户和开发者都熟悉Nz函数,它在遇到空值时返回除空值之外的其他值。该函数的形式如下,其中variant代表Variant数据类型,而valueifnull是一个可选参数,它负责在variant为空值时提供真正的返回值。Nz(variant[, valueifnull])如省略valueifnull,Nz返回值0或一个零长度字符串(""),具体由variant的数据类型决定。图A的查询展示了如何使用Nz及其结果。该查询基于Access示例数据库Northwind中的Employees表。
498)this.width=498;' onmousewheel = 'javascript:return big(this)' height=271 src="/files/uploadimg/5340.gif" width=543>
两个Nz函数都返回字符串数据类型,因为Region的数据类型为Text
如图B所示,两个Nz函数都返回字符串值,而不是空值,但具体的字符串是不同的。第一个表达式返回字符串"N/A"来取代空值:WithOptional: Nz([Region],"N/A")通过返回一个实际的字符串或者值,可为用户提供比空值更多的信息。字符串"N/A"明确指出:当前记录没有合适的值。相反,如返回空值,那么一个空白的字段可能使不熟悉的用户产生误解。
498)this.width=498;' onmousewheel = 'javascript:return big(this)' height=232 src="/files/uploadimg/5341.gif" width=376>
Nz返回一个实际的值,而不是容易使人产生误解的空值第二个表达式返回零长度的字符串来取代空值:WithoutOptional: Nz([Region])虽然这样为用户提供的信息较少,但却有效防止了在后续的表达式中使用空值,从而避免数据库出错。图C显示的新表达式证明了这一点。
498)this.width=498;' onmousewheel = 'javascript:return big(this)' height=169 src="/files/uploadimg/5342.gif" width=543>
表达式可能不能像预期的那样处理空值
两个表达式都直接或间接依赖于Region字段中的值。第一个表达式直接引用Region字段:RegionString: IIf([Region]="","N/A",[Region])只看表达式,你可能认为结果记录集的每个字段中都应该出现一个字符串。图D展示了实际结果,它和你设想的不符,并不是每个字段都包含一个字符串。事实上,只有在字段包含零长度字符串("")的前提下,表达式才会返回字符串"N/A"。我们知道,这些看似空白的字段包含空值,而不是零长度的字符串。但是,错误是可以理解的,也是能避免的。
498)this.width=498;' onmousewheel = 'javascript:return big(this)' height=198 src="/files/uploadimg/5343.gif" width=543>
遇到空值时,用Nz返回值而不是错误
下一个表达式也引用了Region值,只是通过Nz函数的结果来间接地引用:WithoutOptionalString: IIf([WithoutOptional]="","N/A",[WithoutOptional])这样一来,任何空值都可用一个更确切的值来表示,并在后续任何表达式中进行求值。如图D所示,表达式在处理空白Region字段时没什么问题。只有“未预计到”或者“未知”的空值才会导致问题。
Nz在项目中无法工作
有人以为Access项目也支持Nz函数,但实情并非如此。记住,项目中的表是真正的SQL Server表。要证明这一点非常简单,只需使用Access配套提供的示范项目NorthwindCS.adp。以Employees表的一个简单视图为基础,并像前面在Microsoft数据库(.mdb)文件中那样使用Nz函数,如图E所示。试图运行该查询时,Access会返回一个错误。
498)this.width=498;' onmousewheel = 'javascript:return big(this)' height=331 src="/files/uploadimg/5344.gif" width=485>
Access项目不支持Nz函数
在Access项目中使用Nz
在项目中不能使用Nz,而应换用Transact SQL的IsNull函数。该函数的作用与Nz相似,它的形式如下:IsNull(expression, valueifnull)两个参数都是必需的,IsNull结果值的类型由expression决定。如果valueifnull的列数据类型与expression的数据类型冲突,SQL Server会在你试图输入表达式时返回一个错误。例如,假如expression基于一个数值列,而valueifnull是一个字符串,两个参数就会产生冲突。由于SQL Server无法解决冲突,所以会拒绝表达式。为了解决上例(图E)的问题,可将Nz替换成IsNull表达式,如图F所示:IsNull(Region, 'N/A')结果与图B相同(在WithOptional字段中)。
498)this.width=498;' onmousewheel = 'javascript:return big(this)' height=266 src="/files/uploadimg/5345.gif" width=428>
在Access项目中用IsNull代替Nz避免空值错误
Access和SQL Server用不同的函数来处理空值(分别是Nz和IsNull)。正确处理空值可防止数据库出现运行时错误和生成无效数据。不要回避空值,只需正确地处理它们。
关于&&的更多文章
自从MySQL被Oracle收购以后,PostgreSQL逐渐成为开源关系型数据
数据库产品
数据库综合
数据库新闻
维基百科将切换到另外一款开源数据库MariaDB
讲师: 69人学习过讲师: 3人学习过讲师: 164人学习过
也许你不需要了解SQL Server的内部机制,你照样能完成
本专题与大家共同讨论与分享ORACLE SQL的一些常用经典
这条路,有人说是一条不归路,走上来了,就要勇敢的走
《程序员密码学》涉及密码学的各个研究方向,分组密码、散列函数、公钥密码以及相关的攻击,同时也讲解了密码学算法实现上常用的
51CTO旗下网站

我要回帖

更多关于 null与空的区别 的文章

 

随机推荐