sql 开发中简洁忽视的一些小地方-- 1、 SQL 开发中简洁忽视的一些小地方 做开发三年来(B/S),发觉基于 yTestDB] GO /******对象:Table[dbo].[testNull]脚本日期:10/11/202413:45:14******/SETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGOCREATETABLE[dbo].[testNull]([ID][int]IDENTITY(1,1)NOTNULL,[a][nchar](10)COLLATEChinese_PRC_CI_ASNULL,[b][nchar](10)COLL 2、ATEChinese_PRC_CI_ASNULL,CONSTRAINT[PK_testNull]PRIMARYKEYCLUSTERED([ID]ASC)ARY])ON[PRIMARY] 插 入 相 关 测 试值 :insertintotestNullvalues(#39;1#39;,#39;#39;)insertintotestNull values(#39;2#39;,null) 1:一般的值一般都可能进行运算符操作,例如:ID 列为 int,所以可以这样:ID=ID+1 等,但假如一列的值为 null,null+1=null,就是说 null 与任何 3、运算符运算后都为 null,这就是大家说的黑洞,会吃掉全部的东西. updatetestNull setb=b+1 e=#39;张三#39;,假如 sUserName 的值为 null,要想找出全部名字为 null 的记录时,不能这样用:sUserName=null,由于 null 不是一个具体的值,任何值与它比 较 时 都 会 返 回 false. 此 时 可 借 用 isnull 或 者 是 isnotnull. 示例查询: 1:select*fromtestNulltestNulltestNull 它的返回值为 21 2:selectcount(*),count(isnu 4、ll(b,#39;#39;))fromtestNull 它的返回值为 22 结论:对于列包含 null 时,统计行数是可用 count(*),或者是先把 null 值转换成对应的值再统计,例如 count(isnull(b,#39;#39;)); 4:对于 in 的影响不同. 示例查询:查询 testNull 表中 b 的值包含在 null 中 的 记 录 . select*fromtestNull testNull 11#39;#39; 22NULL 2:select*fromtestNullorderbyb 22NULL 11#39;#39; 3:s 5 、 elect*fromtestNullorderbybdesc 11#39;#39; 22NULL 6:当使用 GROUPBY 时,全部的 NULL 值被认为是相等的。这时先多插入几条数据,便利查看结果.insertintotestNullvalues(#39;3#39;,nu123 下一页这篇文章来自..,。ll)values(#39;4#39;,#39;4#39;)select*fromtestNullselectcount(b)fromtestNullgroupbyb 返回结果: 011 结论:可见在groupby 的时候,null 6、视为等同. 7:永久不会有什么数据等于 NULL。1 不等于NULL,2 也一样。但 NULL 也不等于 NULL。所以我们只能比较它是或不是。 总结:SQL 中供应了如此众多的存...