sql数据库开发-6:单行函数2

本文深入探讨SQL中日期函数的运用,如日期加减、比较等操作,并通过实际案例展示如何利用这些函数解决具体问题。同时,文章还介绍了CASE WHEN和DECODE函数的使用方法,以及字符函数的应用,帮助读者提升SQL技能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


单行函数的使用


   日期类型的运算

       对日期加减一个数字,返回值为一个日期
 
       两个日期相减表示两个日期相差多少条

 

 


项目案例:

   昨天,今天,明天

 

项目案例

   十分钟之后


项目案例

   每台unix服务器上的os账号开通了多长时间(以天为单位)

 

项目案例

   按照开通天数的长短显示业务账号的信息

 

 


日期函数

   months_between   两个日期之间相差多少个月
 
   add_months       一个日期加减一个月
 
   next_day         根据参数,出现下一个的日期

   last_day         同一个月的最后一天

 

日期函数 : 例子


  moths_between('01-SEP-95','11-JAN-94');
                            19.774194

  add_months('11-JAN-94',6)
                            11-JUL-94
 
  next_day('01-SEP-95','FRIDAY')
                            08-SEP-95
 
  last_day('01-SEP-95')
               
                            30-SEP-95

 

项目案例:

   上个月的今天,今天,下个月的今天

 


项目案例:

   当前月的最后一天

 


   


SQL语句中的分支

      分支表达式 case when

      分支函数  decode

 


CASE表达式


   寻找when的优先级:从上到下

   再多的when,也只有一个出口,即其中有一个出口,即其中有一个满足了expr就马上退出case

   else_expr和return_expr的数据类型必须相同。

 
   case when condition then return_expr
            when condition then return_expr
 
               ...
            else else_expr
   end

 

 

 

项目案例

   当月包在线时长为20小时,单位费用涨5分,为40小时涨3分,其他不变(用CASE WHEN实现)

 

 

项目案例

    50小时的费用

 

项目案例


    月包在线时长在20到40小时之间,单位费用涨5分,月包在线时长大于40小时,单位费用涨3分。

 

项目案例


   月包在线时长在40到100小时之间,月固定费用涨5角,月包在线时长大于100小时,月固定费用涨3角,其余不变。

 

 

 


DECODE 函数

   DECODE(value,if1,then1,if2,then2,if3,then3,...,else), 表示如果value等于if1时,DECODE函数的结果为then1,...,如果不等于任何一个if值,则返回else .

  select decode(colname1,condition1,value1,condtion2,value2,... valuelse);

 

 


项目案例

    当月包在线时长为20小时,单位费用涨5分,为40小时涨3分,其他不变(用DECODE实现)

 

 

字符函数 (附加)

    lower    小写函数
    upper    大写函数
   initcap   首字符大写函数
   concat    拼接函数   (也可以用||代替)
   substr    求子串函数
   length    字符串的长度
   lpad      右对齐函数,位数不够的,左边补指定字符
   rpad      左对齐函数,位数不够的,右边补指定字符

 


    
   


   

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

慕容屠苏

你的鼓励是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值