`
hubin4
  • 浏览: 96308 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

NULL值的一些知识

阅读更多
SELECT   count(base_uom) as 'my_column' , base_uom
FROM     schema.table
group by base_uom
order by 'my_column'

想对表schema.table里的base_uom字段做统计分析,就是想看看这字段里的某个值出现了几次,
由于这字段里有NULL值,统计的时候SQLServer是不分析的,
就是说不管这字段里NULL出现了几次,count出来总是0
结果:
-----------------------
my_column   base_uom
----------- ----------
0           NULL
1           %
1           CAN
-----------------------

用这个方法就可以了:
SELECT  count(isnull(base_uom,'')) as 'my_column' , base_uom
FROM    schema.table
group by base_uom
order by 'my_column'

结果:
my_column   base_uom
----------- ----------
1           %
1           CAN
14          UNIT
22          NULL
23          STR
25          G
30          PRS
34          TN

说明:
count(isnull(base_uom,''))
这个用了个函数,其实第二个参数''无所谓了,随便什么,只要不是NULL,让其参加统计就可以了

-----------------下面的文字是转其他人的,参考参考------
NULL值的三大特点,分别是:1)NULL值不参加统计;2)NULL值不进入计算表达式;3)不能与其它值进行比较。
所谓NULL值不参加统计 即 在使用统计函数时,凡是涉及到 NULL值的都会被忽视掉(用词可能不准确),不要以为这不重要,其实在某些地方这是很重要的。
而 NULL值不进入计算也就是说在进行数据之间的统计计算时,若有为 NULL值的项,那么它是不进入即不参加计算的。这也是一个不容忽视的问题。这即使在生活中也是常见的。
就好比如说一个人的奖金为NULL值(没有录入数据或其它的原因,不做探讨),而他的基本工资总不会为 0 吧?!(如果为0,早就被T了),月末算总工资的时候把基本工资加上奖金,
而若是奖金为 NULL值,总工资 = 基本工资 + 奖金(NULL),那么当此种情况发生时,总工资 = 基本工资 ?
     肯定的回答是:不等于。因为奖金为 NULL值,NULL值代表具体的什么值?都不知道。而不知道NULL值到底是多少,那么又怎么能进行计算呢?所以总工资等于 NULL 的,也是不确定的。这样,还有员工敢在公司吗?万一你来个总工资的 NULL 为真的空了,那还做什么工作啊?!这就涉及到一个强制转换的问题,即把 NULL值强制转换为 0 ,让其具备业务意义。而强制转换的关键字就是 IS ,语法即 IS NULL;这样就可以进行涉及 NULL值的计算了。
不过 NULL值也不是对所有的统计函数都有影响。一般来说。统计平均值(AVG)时, NULL值是一定会有影响的;统计最小值(MIN)时, NULL值是可能会对 MIN 有影响,在我认为是有点随机性质;统计最大值(MAX)或统计和(NULL)时,NULL值是对其完全没有影响的。
所以又有一种说法是:null值不参加统计,不参加计算,只能用is判断。
判断Null值语句:select * from 表 where 字段 is null;
转换null值语句:select 字段1,字段2,字段3,is null(字段3,’某个值’) from 表;
总之,我们要认真对待 NULL值,最好在使用统计函数时,都加上 IS NULL,以防意外出现。
还有有关强制转换的关键字:cast ,convert。

关于舍入,示例:
select ceiling(10.1),ceiling(10.9);             --结果:     11     
select floor(10.1),floor(10.9);             --结果:     10
select ceiling(-10.1),ceiling(-10.9);             --结果:   -10
select floor(-10.1),floor(-10.9);             --结果: -11
分享到:
评论

相关推荐

    mysql中null(IFNULL,COALESCE和NULLIF)相关知识点总结

    我们如果将NULL值与另一个NULL值或任何其他值进行比较,则结果为NULL,因为一个不知道是什么的值(NULL值)与另一个不知道是什么的值(NULL值)比较,其值当然也是一个不知道是什么的值(NULL值)。 然而我们通常,使用...

    检查记录集的的栏位是否是null值 CheckNull

    ### 检查记录集的字段是否是NULL值 #### 1. **问题背景** 在处理数据库时,经常会遇到某些字段为空(NULL)的情况。对于这些空值的处理至关重要,因为它们可能会影响程序的正常运行,如导致计算错误或显示不完整的...

    oracle中的null_考试题目

    11. **更新NULL值**: 可以使用`UPDATE`语句将列设置为`NULL`。 - **题目示例**: - 第17题中,`SET cardno = NULL`可以成功更新`cardno`为`NULL`。 - **选项分析**: - A. 效果是相同的: 错误。 - B. 只有第一句...

    sql 语句中的 NULL值

    SQL 语句中的 NULL 值是一个非常重要的概念,对于 SQL 开发者来说,是必须掌握的知识点。在 SQL 语句中,NULL 值表示不知道或缺失的值,例如,一个员工的薪水可能是 NULL,因为我们不知道他的薪水是多少。今天,我们...

    【ASP.NET编程知识】.NET Core 处理 WebAPI JSON 返回烦人的null为空.docx

    ,null 值字段序列化返回的值都为 null,前台对应字段赋值需要做 null 值判断。 在 .NET Core 中使用 Newtonsoft.Json 进行序列化,WebAPI 接口返回格式通过 Startup.cs 类全局设置。那么,是否可以通过配置把 null...

    javascript 处理null及null值示例

    JavaScript 是一种弱类型语言,在处理数据值时,经常会遇到各种数据类型,其中 null 值是经常需要处理的一种特殊情况。在 JavaScript 中,null 不是对象类型,而是一个字面量,表示“没有值”或“无”。null 值在...

    C语言程序设计(第2版)-2期 拓展知识7-6 指针值NULL.pdf

    NULL指针是一个特殊的指针值,表示该指针不指向任何有效的内存位置。在C语言中,NULL通常被定义为0或者((void*)0),这取决于编译环境。在stdio.h头文件中,NULL的定义如下: ```c /* Define NULL pointer value */ ...

    NULL

    - **调试**:通过设置断点、打印变量值等方法,找出程序中的错误。 - **重构**:改进代码结构,提高可读性和可维护性,但不改变其外在行为。 - **性能优化**:通过调整算法、减少冗余操作等方式提升程序运行效率...

    [DB]How To Handle Missing Information Without Using NULL.pdf

    而在《1989-1991年的关系数据库写作》中,“Oh No Not Nulls Again”、“小心外连接”和“复合外键与NULL值”等章节进一步探讨了NULL值的相关议题。这些章节通过深入分析指出,NULL值不仅在逻辑上存在问题,还会导致...

    LINQ to SQL语句(14)之Null语义和DateTime

    在关系数据库中,NULL值表示未知或未定义的数据。在LINQ to SQL中,当查询涉及到可能为NULL的数据库字段时,需要特别注意Null处理。C#中,NULL与数据库中的NULL并不完全相同,因此可能导致一些意外的结果。例如,当...

    MySQL中对于NULL值的理解和使用教程

    在MySQL数据库中,NULL值是一个特殊的存在,常常引发新手用户的困惑。NULL并不等同于空字符串'',两者在概念和处理方式上有显著的区别。当一个字段的值为NULL时,这意味着该字段没有值,或者说是未知的、不存在的。...

    PHP判断和比较null、0、''、false的正确姿势.docx

    在PHP编程中,正确地判断和比较变量的值是至关重要的,尤其是涉及到null、0、''(空字符串)和false这些特殊值时。这些值在不同的上下文和比较操作下可能会有不同的行为。以下是对这些基础知识的详细解释: 1. **...

    C#基础知识 值类型装箱

    本文将深入探讨C#中的“值类型装箱”这一概念,这是理解C#内存管理和对象模型的关键知识点。 首先,我们要知道在C#中,数据类型分为值类型(Value Types)和引用类型(Reference Types)。值类型包括基本类型如int...

    vue 解决无法对未定义的值,空值或基元值设置反应属性报错问题

    3. 确保在DOM完全加载后绑定事件:如上文补充知识提到的,如果在head标签中绑定了事件监听器,可能会出现“Cannot set property 'onclick' of null”的错误,因为此时页面中的DOM元素还未加载完成。我们可以在`...

    解决mybatis使用char类型字段查询oracle数据库时结果返回null问题

    知识点: * Oracle数据库中char类型字段的特性 * 使用trim()函数去掉char类型字段的空格 * 将char类型字段改为varchar2类型 * 使用jdbc查询时char类型字段的特殊性 * 在mybatis框架中对char类型字段的特殊处理

    Java中有关Null的9件事Java开发Java经验技巧

    在Java编程语言中,`null`是一个特殊值,表示引用没有指向任何对象。它在Java中的使用至关重要,因为理解`null`可以帮助我们避免常见的运行时错误,如`NullPointerException`。以下是从标题和描述中提取的关于Java中...

    Laravel开发-laravel-null-carbon

    在Laravel项目中,当我们需要处理可能为空的时间数据时,通常会遇到问题,因为DateTime类不支持null值。为了解决这个问题,Laravel引入了Null Carbon类。Null Carbon是Carbon的一个子类,它在处理null值时不会抛出...

    MySQL数据库中null的知识点总结

    以下是关于MySQL数据库`NULL`的一些关键知识点: 1. **`NULL` 的判断**: 在MySQL中,`NULL` 不能直接通过等号(`=`)来比较,而是需要使用 `IS NULL` 或 `IS NOT NULL`。例如,以下查询将返回所有用户名为空的...

Global site tag (gtag.js) - Google Analytics