zoukankan      html  css  js  c++  java
  • SQL Server函数之空值处理

    coalesce( expression [ ,...n ] )返回其参数中第一个非空表达式。

    Select coalesce(null,null,'1','2') //结果为 1

    coalesce(expression1,...n) 与此 case函数等效:

     
    CASE
    WHEN (expression1 IS NOT NULL) THEN expression1
    ...
    WHEN (expressionN IS NOT NULL) THEN expressionN
    ELSE NULL
    END
     

    注意:
    当第一个表达式为字符串且不能转化为整数时,若在后面的表达式中有整数,这样的语句是会报错的。
    例如:

    Select COALESCE('a',null,'1',2) //这是错误的

    这相当于

     
    select 
    CASE
    WHEN ('a' IS NOT NULL) THEN 'a'
    WHEN (2 IS NOT NULL) THEN 2
    ELSE NULL
    END //会出现错误,因为系统无法将a转换为相应的整数
     

    但是

     
    select 
    CASE
    WHEN ('a' IS NOT NULL) THEN 'a'
    WHEN (2 IS NOT NULL) THEN '2'
    ELSE NULL
    END //这是正确的
     

    所以我们在使用coalesce函数时,应该相当小心。
    isnull( check_expression , replacement_value ) 使用指定的替换值替换 NULL。
    replacement_value 必须是可以隐式转换为 check_expresssion 类型的类型。
    在表stu中

    select isnull(ssex,'p') from stu //若ssex列中有NULL值,那么返回p

    nullif( expression , expression ) 如果两个指定的表达式相等,则返回空值,否则 NULLIF 返回第一个 expression 的值。

    select nullif(1,1) //结果为 NULL
    select nullif(1,2) //结果为 1
  • 相关阅读:
    对话系统综述
    3.738. 单调递增的数字
    3.765-情侣牵手
    2.135-分发糖果
    1.312-戳气球
    4.BN推导
    3.CNN-卷积神经网络推导
    2.DNN-神经网络推导
    联系人
    DS博客作业05--查找
  • 原文地址:https://www.cnblogs.com/Agui520/p/9441150.html
Copyright © 2011-2022 走看看