• sql server 之函数小技巧 && 整数类型为空是用空字符串替代实现


    1、判空函数

    说明:使用指定的替换值替换 NULL。

    语法:ISNULL ( check_expression , replacement_value )

    参数:

    check_expression:将被检查是否为 NULL 的表达式。check_expression 可以为任何类型。

    replacement_value:当 check_expression 为 NULL 时要返回的表达式。replacement_value 必须是可以隐式转换为 check_expresssion 类型的类型。

    返回值:返回与 check_expression 相同的类型。

    注释:如果 check_expression 不为 NULL,则返回它的值;否则,在将 replacement_value 隐式转换为 check_expression 的类型(如果这两个类型不同)后,则返回前者。

    实例:

    加入int类型的Flag1为一,则用0代替它的值

    ISNULL(Flag1,0)   //加入int类型的Flag1为一,则用0代替它的值

      注意:因为Flag1是整数(int)类型的,所以后面值肯定也要是int类型的,否则不能通过。因为假如一个数据为空,传到页面显示的时候就会出现undefined,对于程序员来说,这是很正常的事情,很明确就知道它是一个空值,但对于普通用户,undefined就很费解了,我们怎么样才能在一个整形字段为空,用空字符串替代呢?用ISNULL肯定是不能解决的,不要着急,我们可以使用ISNULL、case when和conver函数进行解决。


    2、case when

    CASE WHEN的两种格式

    1.简单Case函数

    CASE sex
    
             WHEN '1' THEN ''
    
             WHEN '2' THEN ''
    
    ELSE '其他' END

    2.Case搜索函数

    CASE WHEN sex = '1' THEN ''
    
             WHEN sex = '2' THEN ''
    
    ELSE '其他' END

    1).两者相比,Case搜索函数功能更强。

    2).Case函数类似于if……else if 语句,只返回第一个符合条件的值,之后的部分会被忽略


    3、convert函数

    CONVERT() 函数是把日期转换为新数据类型的通用函数。

    CONVERT() 函数可以用不同的格式显示日期/时间数据。

    语法:

    CONVERT(data_type(length),data_to_be_converted,style)

     

    data_type(length) 规定目标数据类型(带有可选的长度)。data_to_be_converted 含有需要转换的值。style 规定日期/时间的输出格式。

    可以使用的 style 值:

    Style IDStyle 格式
    100 或者 0 mon dd yyyy hh:miAM (或者 PM)
    101 mm/dd/yy
    102 yy.mm.dd
    103 dd/mm/yy
    104 dd.mm.yy
    105 dd-mm-yy
    106 dd mon yy
    107 Mon dd, yy
    108 hh:mm:ss
    109 或者 9 mon dd yyyy hh:mi:ss:mmmAM(或者 PM)
    110 mm-dd-yy
    111 yy/mm/dd
    112 yymmdd
    113 或者 13 dd mon yyyy hh:mm:ss:mmm(24h)
    114 hh:mi:ss:mmm(24h)
    120 或者 20 yyyy-mm-dd hh:mi:ss(24h)
    121 或者 21 yyyy-mm-dd hh:mi:ss.mmm(24h)
    126 yyyy-mm-ddThh:mm:ss.mmm(没有空格)
    130 dd mon yyyy hh:mi:ss:mmmAM
    131 dd/mm/yy hh:mi:ss:mmmAM

    实例

    下面的脚本使用 CONVERT() 函数来显示不同的格式。我们将使用 GETDATE() 函数来获得当前的日期/时间:

    CONVERT(VARCHAR(19),GETDATE())
    CONVERT(VARCHAR(10),GETDATE(),110) 
    CONVERT(VARCHAR(11),GETDATE(),106)
    CONVERT(VARCHAR(24),GETDATE(),113)

    结果类似:

    Dec 29 2008 11:45 PM
    12-29-2008
    29 Dec 08
    29 Dec 2008 16:25:46.635

     CONVERT() 函数将一种类型的数据转换为另外一种数据类型。

    CONVERT(要转换到的数据类型,字段名)

      例子:将int类型的Flag1转换为varchar(10)类型

    convert(varchar(10),Flag1)

    4、解决不同类型int类型为空时,用空字符串代替

      1、假如它是空,就将其转换为0

          2、因为空字符串也是字符串,所以当Flag1不是为空的时候,还是需要将其转换为字符串,所以无论Flag1是否为空,结果都是字符串,所以这样子能运行

    case  
    when 0 = ISNULL(Flag1,0)   then ' '
    else convert(varchar(10),Flag1)
    end

      自己想出来的,可能效率比较低,假如有更好的方法,希望赐教!

  • 相关阅读:
    内网其他服务器节点连接Mysql数据库很慢的解决方案
    MongoDB分片技术原理和高可用集群配置方案
    Hive事务原理和Datax同步事务表问题解决
    Mysql使用存储过程创建测试数据
    Hive的原生部署方式
    ByteArray的操作总结(复制、打印、位运算)
    句柄
    C# 使用指针将不同值类型赋值到字节数组中
    对象、字节流转换
    ASP.NET Core学习日志1
  • 原文地址:https://www.cnblogs.com/0201zcr/p/4674399.html
Copyright © 2020-2023  润新知