澳门新萄京官方网站-www.8455.com-澳门新萄京赌场网址

之函数小技能

2019-06-29 作者:数据库网络   |   浏览(96)

create view sss as(select

假定是sql的数据库写的代码想换成oracle上,能够将ISNULL写成四个只调用NVL的函数,

 

1、判空函数

  ISNULL(operate_time, CONVERT(VARCHAR(20),create_time,120)) time

这样就能够通用了,极度是有大气囤积进度和视图平时用ISNULL的情形。

方今铺面在做Oracle数据库相关制品,在此地作以总计:

证实:使用钦定的替换值替换 NULL。

  from s_project
);

 

ISNULL()函数

语法    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。



语法:ISNULL ( check_expression , replacement_value )

一、ISNULL()函数  (oracle中为nvl()函数)

前段时间集团在做Oracle数据库相关产品,在那边作以计算:

nvl( ) 函数

从七个表达式再次回到一个非 null 值。
语法
NVL(eExpression1, eExpression2)
参数
之函数小技能。eExpression1, eExpression2
若果 eExpression1 的估测计算结果为 null 值,则 NVL( ) 重返eExpression2。若是 eExpression1 的谋算结果不是 null 值,则赶回 eExpression1。eExpression1 和 eExpression2 能够是自由一种数据类型。如若eExpression1 与 eExpression2 的结果皆为 null 值,则 NVL( ) 再次来到.NULL.。
回到值类型
字符型、日期型、日期时间型、数值型、货币型、逻辑型或 null 值
说明
在不协理 null 值或 null 值毫无干系主要的景色下,能够使用 NVL( ) 来移去总计或操作中的 null 值。

select nvl(a.name,'空得') as name from student a join school b on a.ID=b.ID

小心:多个参数得类型要合营

参数:

  ISNULL()函数 使用钦命的值替换 NULL。
  语法:ISNULL ( check_expression , replacement_value ) 
  参数:check_expression--将被检查是不是为 NULL的表明式。check_expression 能够是其余项目标。
    replacement_value--在 check_expression 为 NULL时将回来的表明式。

ISNULL()函数

语法    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:将被检查是不是为 NULL 的表明式。check_expression 可以为任何项目。

    replacement_value 必须与 check_expresssion 具有一样的项目。 
  再次来到类型:重临与 check_expression 同样的档案的次序。
  注释:如果 check_expression 不为 NULL,那么再次来到该表明式的值;不然再次来到 replacement_value。

nvl( ) 函数

从七个表明式重回贰个非 null 值。
语法
NVL(eExpression1, eExpression2)
参数
eExpression1, eExpression2
如 果 eExpression1 的总结结果为 null 值,则 NVL( ) 返回eExpression2。若是 eExpression1 的盘算结果不是 null 值,则赶回 eExpression1。eExpression1 和 eExpression2 能够是随便一种数据类型。倘诺eExpression1 与 eExpression2 的结果皆为 null 值,则 NVL( ) 再次来到.NULL.。
回去值类型
字符型、日期型、日期时间型、数值型、货币型、逻辑型或 null 值
说明
在不帮助 null 值或 null 值毫无干系重要的境况下,可以使用 NVL( ) 来移去总计或操作中的 null 值。

select nvl(a.name,'空得') as name from student a join school b on a.ID=b.ID

小心:多少个参数得类型要合营

replacement_value:当 check_expression 为 NULL 时要再次来到的表达式。replacement_value 非得是能够隐式转变为 check_expresssion 类型的项目。

二、NULLIF(a,b)函数

返回值:返回与 check_expression 同样的品种。

  NULLIF:需求五个参数,假若八个内定的表明式等价,则赶回null 
    例子:NULLIF(a,b) 
    表明:假设a和b是相等的,那么重临NULL,假若不等于重回a 

注释:如果 check_expression 不为 NULL,则赶回它的值;不然,在将 replacement_value 隐式调换为 check_expression 的类型(假设那八个品类分裂)后,则赶回前边叁个。

三、CONVERT()

实例:

  CONVERT()函数是把日子调换为新数据类型的通用函数。能够用差异的格式展现日期/时间数额。

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

  CONVERT(data_type(length),data_to_be_converted,style);
   data_type(length) 规定目标数据类型(带有可选的长度)。data_to_be_converted 含有需要转换的值。style 规定日期/时间的输出格式
ISNULL(Flag1,0)   //加入int类型的Flag1为一,则用0代替它的值
Style ID Style 格式
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

 

  注意:因为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 ID Style 格式
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

 

  本人想出去的,恐怕效用比异常的低,要是有越来越好的点子,希望赐教!

 

本文由澳门新萄京官方网站发布于数据库网络,转载请注明出处:之函数小技能

关键词: