当前位置: 首页 > news >正文

T-SQL遗漏值NULL

遗漏值NULL:
在表达式中有NULL那么得到的结果也是NULL.NULL值从不和其他值相等,同样也不和它本身相等。大多数的含有NULL的函数返回值也是NULL,有一种情况例外,就是将函数设计为首先处理NULL。包括ISNULL和COALESCE。
在关系数据库中NULL值会产生极大的耗费。假设以下这些表和数据:
CREATE TABLE #Values (K1 int identity,c1 int NULL)
INSERT #Values (c1) VALUES (1)
INSERT #Values (c1) VALUES (1)
INSERT #Values (c1) VALUES (NULL)
INSERT #Values (c1) VALUES (9)
这个查询:
SELECT * FROM @Values WHERE c1 = 1

SELECT * FROM @Values WHERE c1 <> 1
可能认为会返回#Values表中的所有行,但实际不会,为了得到所有行,必须考虑到NULL值,所以SQL语句应该写成:
SELECT * FROM #Values WHERE 才c1 = 1 or c1 IS NULL
避免使用NULL的一个可以接受方法就是使用哑元值来表示遗漏值,例如,可以用"N/A"或"NV"来代替字符串列中的NULL;可以用-1来表示多种数值列中的遗漏值;可以用"1900-01-01"来代替日期等.

以上内容是《Transact-SQL权威指南》一书的读书笔记,感谢作者KEN HENDERSON 和 译者 健莲科技 中国电力出版社 为我带来这么经典的T-SQL书籍。

转载于:https://www.cnblogs.com/spnider/archive/2006/12/20/598719.html

相关文章:

  • 通过COM来获取CookieContainer,简单又好用
  • 一个实例来简单的说明接口
  • ASP.NET 2.0 Web Part编程之定制Web Part
  • .NET 指南:抽象化实现的基类
  • 浮动静态路由
  • 范伟导老师Sniffer课程资料
  • 春节期间新闻回顾:思科微软多事 熊猫烧香完事
  • Windows Mobile 6 SDK 正式发布!
  • 怎样用javascript操作ftb编辑区内容
  • 局域网防雷电***实用解决方案
  • 系统不显示桌面的原因和解决方法
  • 让Windows下的驱动乖乖在Linux中安家!
  • Linux下文件和目录的颜色代表的含义
  • 哈哈,毒霸可以直接关闭自动播放功能,真是太棒了
  • cpu
  • 【Leetcode】101. 对称二叉树
  • [译] 怎样写一个基础的编译器
  • Docker 1.12实践:Docker Service、Stack与分布式应用捆绑包
  • extract-text-webpack-plugin用法
  • Javascript编码规范
  • Js实现点击查看全文(类似今日头条、知乎日报效果)
  • Markdown 语法简单说明
  • MySQL Access denied for user 'root'@'localhost' 解决方法
  • React中的“虫洞”——Context
  • 观察者模式实现非直接耦合
  • 开源SQL-on-Hadoop系统一览
  • 漫谈开发设计中的一些“原则”及“设计哲学”
  • 使用iElevator.js模拟segmentfault的文章标题导航
  • 我看到的前端
  • 【运维趟坑回忆录 开篇】初入初创, 一脸懵
  • Java数据解析之JSON
  • ​​快速排序(四)——挖坑法,前后指针法与非递归
  • ​【已解决】npm install​卡主不动的情况
  • ​ubuntu下安装kvm虚拟机
  • $分析了六十多年间100万字的政府工作报告,我看到了这样的变迁
  • (01)ORB-SLAM2源码无死角解析-(66) BA优化(g2o)→闭环线程:Optimizer::GlobalBundleAdjustemnt→全局优化
  • (13)Latex:基于ΤΕΧ的自动排版系统——写论文必备
  • (173)FPGA约束:单周期时序分析或默认时序分析
  • (env: Windows,mp,1.06.2308310; lib: 3.2.4) uniapp微信小程序
  • (大众金融)SQL server面试题(1)-总销售量最少的3个型号的车及其总销售量
  • (二)什么是Vite——Vite 和 Webpack 区别(冷启动)
  • (六)软件测试分工
  • (原創) 如何將struct塞進vector? (C/C++) (STL)
  • (转)socket Aio demo
  • (转)全文检索技术学习(三)——Lucene支持中文分词
  • (转载)VS2010/MFC编程入门之三十四(菜单:VS2010菜单资源详解)
  • .bat批处理(二):%0 %1——给批处理脚本传递参数
  • .net core 调用c dll_用C++生成一个简单的DLL文件VS2008
  • .NET 设计模式初探
  • .NET 中使用 TaskCompletionSource 作为线程同步互斥或异步操作的事件
  • .NET开源全面方便的第三方登录组件集合 - MrHuo.OAuth
  • .Net中的集合
  • .secret勒索病毒数据恢复|金蝶、用友、管家婆、OA、速达、ERP等软件数据库恢复
  • /3GB和/USERVA开关
  • @Bean注解详解