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  

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

相关文章

这篇文章主要介绍“hive和mysql的区别是什么”,在日常操作中...
这篇“MySQL数据库如何改名”文章的知识点大部分人都不太理解...
这篇文章主要介绍“mysql版本查询命令是什么”的相关知识,小...
本篇内容介绍了“mysql怎么修改字段的内容”的有关知识,在实...
这篇文章主要讲解了“mysql怎么删除unique约束”,文中的讲解...
今天小编给大家分享一下mysql怎么查询不为空的字段的相关知识...