微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

SQLServer数据库中如何使用ISNULL函数

sqlServer数据库中如何使用ISNULL函数,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

  sqlServer数据库ISNULL函数怎么应用

  1.利用ISNULL函数干掉OR运算!

  题目是查询表中VAL小于20的值,包括NULL值:

  SELECT*FROMTWHEREISNULL(VAL,-1)<20SELECT*FROMTWHEREVALISNULLORVAL<20   两个sql具有相同的输出结果   GRP_AGRP_BGRP_CVAL-----------------a1b1c110a1b1c210a2b3c3NULLa2b3c3NULLa2b3c3NULL(5行受影响)   GRP_AGRP_BGRP_CVAL----------------a1b1c110a1b1c210a2b3c3NULLa2b3c3NULLa2b3c3NULL(5行受影响)   sqlServer数据库ISNULL函数怎么应用   2.ISNULL非主流更新表存储过程示例   如某更新表存储过程如下:   CREATEPROCUpdateT(@IDINT,@GRP_AVARCHAR(10)=NULL,@GRP_BVARCHAR(10)=NULL,@GRP_CVARCHAR(10)=NULL,@VALINT=0)ASBEGINUPDATETSETGRP_A=@GRP_A,GRP_B=@GRP_B,GRP_C=@GRP_C,VAL=@VALWHEREID=@IDEND   当我们使用这个存储过程的时候,必须先得该行的所有记录,再把所有记录更新回去,可是这并不总是必须的。有时候手头只有两个数据:ID和VAL,我只想更新这个VAL,又有时候手头有另外两个数据:ID和GRP_A,这时候只更新GRP_A列即可。还有很多情况,如:   仅更新GRP_A,   仅更新GRP_A,GRP_B   仅更新GRP_A,GRP_B,GRP_C   仅更新GRP_A,GRP_B,GRP_C,VAL   ...   这样的组合太多了,要想一劳永逸解决问题那就得更新任何字段前,先得到整行记录,再整行更新回去,于是多了一项工作:先查询,再更新,那没有办法不先查询直接更新某一列呢而且列可以任意组合   在给出答案前,先声明一句:这个方法算不上完美解决方案,仅仅是个思路罢了,虽然我一直认为没什么影响,但假如要在正式项目中使用,建议还是多听听DBA的意见!   非主流更新任意列存储过程:   CREATEPROCUpdateT(@IDINT,@GRP_AVARCHAR(10)=NULL,@GRP_BVARCHAR(10)=NULL,@GRP_CVARCHAR(10)=NULL,@VALINT=0)ASBEGINUPDATETSETGRP_A=ISNULL(@GRP_A,GRP_A),GRP_B=ISNULL(@GRP_B,GRP_B),GRP_C=ISNULL(@GRP_C,GRP_C),VAL=ISNULL(@VAL,VAL)WHEREID=@IDEND  

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注编程之家行业资讯频道,感谢您对编程之家的支持

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐