sql中NULL的问题

 
今天一不小心在sql中写出以下脚本
select defaultPositionId from TableName where UserId=1100528 and defaultPositionId =null 
执行之后大惊怎么没有结果,使用select * from tableName 该列确实为null怎么查补出来难道自己人品问题于是自己又写了以下判断
 
if(null=null)
BEgin
  print 'fff'
end 
else
begin
  print 'gggg'
end  www.2cto.com  
输出结果如下:


 

无语难道null与null还有区别。
于是找搜索引擎,在sql中null是一种数据类型,null不能与任何列或者变量使用"="或者"!="去比较
判断某列或者变量为null是只能用is (not) null 去判断这样他的返回值才是true或者false
 
       关于null的运用
NULL值与索引
如果一个列中有NULL值,那么不可以在这个列上建唯一索引,可以建立非唯一索引;但是如果一个字段有很多行有NULL值,那么在这个字段上建索引效果不佳。所以建议不在在一个频繁出现NULL值的字段上建索引(有待证实)。
 
NULL与排序
NULL参与排序时总是作为最小值存在,即ORDER BY COL ASC时COL为NULL的行在最前面,反之在最后面。
附注:t-sql中三个关于NULL的函数:
ISNULL(check_expression, replacement_value)
check_expression 与 replacement_value 数据类型必须一致 
如果 check_expression 为 NULL,则返回 replacement_value 
如果 check_expression 不为 NULL,则返回 check_expression
   www.2cto.com  
NULLIF 用于检查两个表达式,语法:
NULLIF(expression, expression)
如果两个 expression 相等,则返回 NULL,该 NULL 为第一个 expression 的数据类型 
如果两个 expression 不相等,则返回第一个 expression
 
COALESCE()函数可以接受一系列的值,如果列表中所有项都为空(null),那么只使用一个值。然后,它将返回第一个非空值。这一技巧描述了创造性使用SQL Server 中COALESCE()函数的两种方法。

sql中NULL的问题的更多相关文章

  1. sql中null 和 ‘’(空字符串)

    sql 中 null  和 空字符串的区别方式 在Silverlight中  数据库 需要与实体类进行映射, 假如实体类不允许为null,则 select '' as 列名  from  表名字:   ...

  2. SQL中null比较的雷区

    SQL中遇到null要格外小心! oracle最坑: oracle中在可为null的字段上做逻辑关系运算要格外小心,如 <>,>,=,<,任何与null的运算结果都返回fals ...

  3. SQL中NULL值

    SQL的表达式,除了IS NULL和NOT NULL以外,只要出现NULL值结果都为FALSE 简单的例子: SELECT * FROM table WHERE name!='abc' 只要name值 ...

  4. SQL中NULL的妙用

    商品表Products 库房表WarehouseDistrict 库存表WarehouseStock 一般写法 ;WITH stock AS ( SELECT DistrictId, ProductI ...

  5. SQL语句中=null和is null

    平时经常会遇到这两种写法:IS NOT NULL与!=NULL.也经常会遇到数据库有符合条件!=NULL的数据,但是返回为空集合.实际上,是由于对二者使用区别理解不透彻. 默认情况下,推荐使用 IS ...

  6. sql server中NULL导入decimal字段时报错

    sql server中NULL导入decimal字段时报错 在导入CSV文件时,如果decimal字段为null值,导致文本文件入库时失败. 错误现象 构造例子 新建一张表,包含decimal字段. ...

  7. SQL中的Null深入研究分析

    SQL中的Null深入研究分析 虽然熟练掌握SQL的人对于Null不会有什么疑问,但总结得很全的文章还是很难找,看到一篇英文版的, 感觉还不错. Tony Hoare 在1965年发明了 null 引 ...

  8. SQL中空值与NULL区别

    很多人都有过这样的问题吧   在SQL中填充空值与NULL有什么区别 现在我以一个实例给大家分享一下自己的想法  恳请大家给予批评也指正 谢谢 创建一个监时表 CREATE TABLE #temp ( ...

  9. 深入详解SQL中的Null

    深入详解SQL中的Null NULL 在计算机和编程世界中表示的是未知,不确定.虽然中文翻译为 “空”, 但此空(null)非彼空(empty). Null表示的是一种未知状态,未来状态,比如小明兜里 ...

随机推荐

  1. MSSQL-资源地址

    1.SQL-SERVER客户端管理工具.下载地址 https://msdn.microsoft.com/en-us/library/mt238290.aspx?f=255&MSPPError= ...

  2. LESSCSS

    LESSCSS应需求而生 CSS 的语法相对简单,对使用者的要求较低,但同时也带来一些问题:CSS 需要书写大量看似没有逻辑的代码,不方便维护及扩展,不利于复用,尤其对于非前端开发工程师来讲,往往会因 ...

  3. WP Super Cache 安装与设置方法

    1.首先,永久连接不能使用默认格式 2.修改永久链接格式,中文推荐采用 /%post_id%.html (这下你知道我的.orz哪里来了吧) 如果你和我一样蛋疼愿意为每篇文章写一个英语的post sl ...

  4. 对Spring.Net+NHibenate+Asp.Net Mvc+Easyui框架的个人认识

    对Spring.Net+NHibenate+Asp.Net Mvc+Easyui框架的个人认识   初次接触Spring.Net+NHibenate+Asp.Net Mvc+Easyui框架,查阅了相 ...

  5. 启动安卓模拟器报错 emulator: ERROR: x86_64 emulation currently requires hardware acceleration! CPU acceleration status:HAXM must be updated(version 1.1.1<6.0.1) 解决办法

    启动安卓模拟器报错 emulator: ERROR: x86_64 emulation currently requires hardware acceleration!  CPU accelerat ...

  6. c#添加事物(全部执行和带保存点的执行)

    全部执行 protected void Button2_Click(object sender, EventArgs e) { // 执行事务 SqlConnection con = new SqlC ...

  7. XJOI网上同步训练DAY1 T2

    思路:似曾相识?...见http://www.cnblogs.com/qzqzgfy/p/5266874.html 一看时限还是4s!,于是就开开心心地打了70%的分,就是用容斥原理,就可以n^3解决 ...

  8. PowerShell_零基础自学课程_1_初识PowerShell

    欢迎转载本系列文章:转载请注明出处:www.cnblogs.com/volcanol 自从微软推出.Net以来,微软旗下的windows体系就发生了很大的变化,首先是操作系统的界面的变化,例如vist ...

  9. hihoCoder 1116 计算 (线段树)

    题意 : 描述 现在有一个有n个元素的数组a1, a2, ..., an. 记f(i, j) = ai * ai+1 * ... * aj. 初始时,a1 = a2 = ... = an = 0,每次 ...

  10. Java 自定义实现 LRU 缓存算法

    背景 LinkedHashMap继承自HashMap,内部提供了一个removeEldestEntry方法,该方法正是实现LRU策略的关键所在,且HashMap内部专门为LinkedHashMap提供 ...