当前位置: 首页 > 图文教程 > 数据库 > MSSQL > sql 语句中的 NULL值

MSSQL
如何用SQL语句来判断已知表是否存在
剖析SQL Server 2005中的报告服务架构
使用Microsoft SQL Server 2000的XML查询
让SQL Server为工作负载高峰提前准备
用Sql server一次插入多条数据
SQL SERVER2000深入学习之常见错误
关于SQL Server数据库的若干注意事项
sql server 2005中的表分区
SQL Server实用经验与技巧大汇集
限制SQL Server只能让指定的机器连接
SQL Server数据汇总完全解析
SQL查询语句使用精华
优化SQL Server服务器内存配置的策略
Sql server进行优化50招特效
用SQL语句实现异构数据库之间的导数据导入/出
SQL Server Compact Edition RC1 发布!
SQL Server死锁的分析
加快SQL Server备份和重新存储的速度
使用TSQL操作面试SQL Server开发人员
SQL 外链接操作小结 inner join left join right join

MSSQL 中的 sql 语句中的 NULL值


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2010-01-10   浏览: 178 ::
收藏到网摘: n/a

sql 语句中的 NULL值 ,需要的朋友可以看看。 今天写了这样的代码
复制代码 代码如下:

  DECLARE @atr NVARCHAR(20)
  SET @atr = NULL
  IF(@atr = NULL)
  BEGIN
  PRINT 1
  END
  原本是想打印出1的。但是没有。 把 代码修改成如下:
  DECLARE @atr NVARCHAR(20)
  SET @atr = NULL
  IF(@atr IS NULL)
  BEGIN
  PRINT 1
  END

  这样就正确打印出1了。
  然后自己有做了如下的修改,把if语句修改成
复制代码 代码如下:

  IF(NULL = NULL)
  BEGIN
   PRINT 1
  END

  结果:不会打印出1
  由此我们可以总结sql语句中的NULL值和任何值在做 ”=“运算的时候都不会相等。 要用" IS NULL " 做是否是NULL值的判断。
  我们还可以用函数 ISNULL(@str,0) = 0 来判断 变量是否是NULL值。
  小问题,记录一下,强化记忆,善于总结,不走冤枉路。
================================================================================
  补充:NULL 与 "+" 运算符。
  “+” 可以用来做字符串的连接,还可以做加法运算,那么NULL值和字符串做“+”会是什么样的结果?我写了下面的验证程序:
  
复制代码 代码如下:

  DECLARE @str NVARCHAR(200)
  DECLARE @str1 NVARCHAR(200)
  DECLARE @str2 NVARCHAR(200)
  SET @str = NULL
  SET @str1 = 'You look pretty today'
  SET @str2 = @str + @str1
  PRINT @str2

  结果什么东西都没有打印出来,为什么呢 ?我们测试一下@str2现在是何值?
  IF(@str2 IS NULL)
  PRINT 1
  结果打印出1,于是我们可以猜测NULL和任何类型做“+”运算结果仍为NULL值
  
  再写一个NULL和INT类型做"+"的验证程序:
复制代码 代码如下:

  DECLARE @num INT
  DECLARE @num1 INT
  DECLARE @num2 INT
  SET @num = 1
  SET @num1 = 2
  SET @num2 = @num + @num1
  PRINT @num2

  结果打印出3,将红色加粗部分换成 SET @num = NULL,结果是什么呢 ?自己试吧,哈哈。