zoukankan      html  css  js  c++  java
  • 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.
  • 相关阅读:
    在WCF中使用Flag Enumerations
    WCF开发教程资源收集
    [转]WCF 4 安全性和 WIF 简介
    Asp.Net Web API 2 官网菜鸟学习系列导航[持续更新中]
    Asp.Net Web API 2第十八课——Working with Entity Relations in OData
    Asp.Net Web API 2第十七课——Creating an OData Endpoint in ASP.NET Web API 2(OData终结点)
    Asp.Net Web API 2第十六课——Parameter Binding in ASP.NET Web API(参数绑定)
    Asp.Net Web API 2第十五课——Model Validation(模型验证)
    函数 生成器 生成器表达式
    函数的进阶
  • 原文地址:https://www.cnblogs.com/top5/p/1457919.html
Copyright © 2011-2022 走看看