• Firebird中的NULL


    Firebird对于NULL的处理有很多需要注意的地方:
    1,定义表中的列是否可以为Null,语法是:create table MyTable ( i int not null )

    2,判断值是否为Null,用"is"关键字,例如 a is null/ a is not null

    3,对值赋予Null,用"="关键字,例如Update tablename set a = null where .....

    4,[A] is/is not distinct from [B],
         例如if ( A is distinct from B ) then...,
         需要注意下,distinct返回true的条件是A和B有不同的值,或一个为NULL,一个有值
     not distinct返回true的条件是A和B的值相同,或者都为空

    5,Null在运算中的用法
         在数字和字符串的运算中出现NULL的时候,它们的结果都会返回NULL,例如
    1 + 2 + 3 + NULL    //null
    'Home ' || 'sweet ' || NULL    //null
    MyField = NULL    //null

    6,Boolean运算符
    not NULL = NULL
    NULL or false = NULL
    NULL or true = true
    NULL or NULL = NULL
    NULL and false = false
    NULL and true = NULL
    NULL and NULL = NULL

    7,在IN表达式中的NULL
         A IN ( Expr1, Expr2, ..., ExprN ) ,相当与A=Expr1 or A=Expr2 or ... or A=ExprN,所以如果A为NULL,返回的结果一定都为NULL,但是在(Expr1,...)这个列表中如果有值为NULL的时候,则如果列表中存在A的值,那么“A IN( Expr1, Expr2, ..., ExprN )” returns true
    “A NOT IN( Expr1, Expr2, ..., ExprN )” returns false
         如果列表中不存在A的值
    “A IN( Expr1, Expr2, ..., ExprN )” returns NULL
    “A NOT IN( Expr1, Expr2, ..., ExprN )” returns NULL

    8,在Exists和SINGULAR(是否只有一条记录)表达式中的NULL
         Exists和SINGULAR的结果只返回true或false

    9,当ORDER BY中的列有NULL的时候,NULL被当作是最小的值来处理,如果是asc,就排列在最前面,如果是desc,就排列在最后面

    10,当在sum,count,MAX, MIN,AVG这些内在函数的时候都会忽略为NULL的行,特别要注意的是Count,count(*)和count(columnname)返回的结果是不一样的.count(columnname)会忽略掉为NULL的行

    11,在约束条件check设置的时候,例如check (a > 1);这里对NULL是不进行检测的,如果要去掉NULL,就要加上a is not null.

    12,SELECT DISTINCT中的NULL,会被当作相等的值来处理,例如SELECT DISTINCT name from dt,如果name有两行为NULL,那么这里就只能获取一行。

    13,nullif(express),例如nullif(name, 'a'),当name='a'的时候,它就转换为Null.
  • 相关阅读:
    JSON——JavaScript 对象表示法(JavaScript Object Notation)。
    jquery—— jQuery 是目前最流行的 JS 框架
    Bootstrap的css
    markdown编辑器与富文本编辑器优缺点比较--转载好文
    MATLAB绘图设置--中坐标显示间隔以及范围设置
    MATLAB绘图中参数导数的标注方法
    MATLAB 读取和写出Excel文件的方法-单个以及自动循环读写多个情况
    matlab 求和
    MATLAB画图中设置Marker过于密集怎么办-解决方法
    MPC特点原理以及各项参数的选择--引用别人的博客网址
  • 原文地址:https://www.cnblogs.com/top5/p/1457919.html
Copyright © 2020-2023  润新知