- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
null学习
null学习
当表中某列值不是“不可空”,如果不向表中填数据,则该字段以null空值保存。
NULL 值的处理方式与其他值不同。
NULL 用作未知的或不适用的值的占位符。
无法比较 NULL 和 0;它们是不等价的。
?
24.1 null实例
样例数据:
要求:获取ardess中带有空值的数据列
语句:
SELECT?* FROM table_1
WHERE Ardess IS NULL
要求:获取ardess中非空值的数据列
SELECT?* FROM table_1
WHERE Ardess IS not NULL
注:
无法使用比较运算符来测试 NULL 值,比如 =, , 或者 。
我们必须使用 IS NULL 和 IS NOT NULL 操作符。
?
24.2 isnull函数(将null赋值)
ISNULL语句:ISNULL(被检索是否为null的表达式,替代null的值)
?样例数据如下:
要求:将虫虫的总分求出。
语句:
select 姓名,(语文+数学+地理+历史)
from Table_4
将语句改为:
select 姓名,(ISNULL(语文,0)+ISNULL(数学,0)+ISNULL(地理,0)+ISNULL(历史,0))
from Table_4
执行结果:
解释:当表格中有null值时,null并不等于0,如果不将null转化为数字,则返回值为null。第二个语句将有null的赋值0,所以得到正确的返回值。当然,也可以将null赋值其他。因为0是数字,所以不用加号,其他符号需要加单引号。函数不需要加引号。
注:sql server 和acess中null函数用法同。但oracle ?NVL() 函数,My sql用 IFNULL() 函数。
?
24.3 nullif函数(将其他值赋值null)
语法:nullif(表达式,被替代的值)?
当被替代的值跟表达式相等时,将返回空值;当两者不等,返回第一个表达式的值。
要求:将虫虫的语文值改为null
语句:
select 姓名, nullif(语文,67) from Table_4
24.4 coalesce()
从某种意义上来说,该函数是将多个不同的、不知是否有效的值组合起来,得到一个有效值。他接受多个表达式或列作为参数,并返回第一个非空值。coalesce()函数擅长合并混乱的数据。
例:信息表中,地址内容有的存在add1中,有的在add2中,有的在add3中,且有些add1中的地址将第二行存在了add2中,如果这三列有内容,则note中是备注内容,如果这三列没有内容,则note列是地址。
要求:提取地址
select coalesce(
add1+add2,
add1,
add2,
add3,
note)as new add
from 信息表
语法解释:add1+add2,只有当add1和add2中都有内容,才能返回值,否则有一个为空,则返回空值。因此如果存在两列的地址,则返回两列的结合。如果不满足,则返回存储在add1 add2 add3中的单行地址,如果都没有,则返回note里面的值。
AND TRUE FALSE NULL TRUE TRUE FALSE NULL FALSE FALSE FALSE FALSE NULL NULL FALSE NULL OR操作图表变为:
OR TRUE FALSE NULL TRUE TRUE TRUE TRUE FALSE TRUE FALSE NULL NULL TRUE NULL NULL 对这个我总结几句容易记住的话:(可能自己表达的不太容易懂)。
NULL的理解就是未知数。
对于AND逻辑表达式,只有两个条件为真才会为真。
所以,其中一个条件为假结果就是假。若是一个为TRUE就要看另外一个,结果就是未知数(TRUE AND NULL = NULL)。若是两个都是NULL的话,结果也是NULL,因为两个未知的条件有可能都是TRUE呀,也有可能为FASE,所以未知。
所以对与NOT来说也就是NULL 这样会很容易理解。
文档评论(0)