单行函数(仅对单个表达式或一行进行处理)

例如:select sum(qty) from sales

          group by stor_id;

   select substr(au_lname, 1, 5) from authors;//从au_lname中从第一个字符开始取5个字符

单行函数包括:字符函数、数字函数、日期函数、转换函数、General函数

1. lower, upper, initcap函数完成大小写的转化

   initcap根据单词,将第一个字母大写,其余的都小写。initcap('SQL SERVER'); //结果为:Sql Server

   例如:select lower(au_lname) , upper(au_fname), initcap(address) from authors;

2. concat:字符连接

        select concat(au_lname, au_fname) from authors; //结果为:RingAlbert

   substr:取字符串中的前n个字符

          select substr(au_lname, 1, 5) from authors; //从左边第一个字符开始取5个字符

         select substr(au_lname, -2, 3) from authors; //从右边第二个字符开始取3个字符

length:长度

instr:位置   select instr(au_lname, 'g') from authors; //字母g在au_lname的位置

lpad:左填充 select lpad(au_lname, 15, '*') //设定au_lname长度为15,如果不够就在左边填充*号

   rpad:右填充

trim:压缩在字符串中出现的字符或者是字符串 select trim('h' from au_lname) from authors;

           如果au_lname列中有一个'helloworld'的串,则被压缩为:elloworld

3. 数字函数

      round(四舍五入), trunc(截取), mod(求余)

     例如:select round(45.926, 2), trunc(45.926, 2) from dual; //2表示小数点后右边保存2位

          结果为: 45.93                               45,92

         select mod(500, 300) from dual;

          结果为:2     即求除后的余数

4. sysdate当前系统的时间

      select sysdate from dual;

      select (sysdate-ora_date) /7 from sales;//到目前为止已经销售了多少星期了

4.日期函数

     months_between

           例如:select months_between(sysdate, ora_date) from duals;//表示两者之间有多少个月

   add_months:添加月份 select add_months(sysdate, 5) from duals;// 如果当前为2月,则增加后为8月

next_day   next_day('01_sep_95','friday') //95年九月1号的下一个星期五是 08_sep_95

last_day('01_sep_95') //95年九月的最后一天是28_sep_95

round , trunc 如:select round(ora_date), trunc(ora_date) from sales;

5.日期与字符的转化,数字与字符的转化: to_char 、to_number、to_date

                         select to_char(ora_date, 'dd-mm-yyyy') from sales;

                         c /mm/month/

         如:select to_char(qty, '$999.99') from sales; //$999.99为转换的格式

          结果为:$50.32     $132.34   $44.22

6.嵌套

     select length(substr(au_lname, 1, 5)) from authors;

7. 通用函数

   nvl(expression1,expression2) // 当表达式1为空时,采用expression2

         select nvl(address, 'not specify') from authors;// 当authors中的某些行address为空时,用'not

                                                                                 specify'来替换,即输出地址为not specify,而不是

                                                                                  输出为空

    nvl2(expre1, expre2, expre3) //如果expre1不为空,则采用expre2,否则采用expre3

         select nvl2(address, 'have address', 'not have address') from authors;

nullif(expre1,expre2) //如果expre1=expre2, 则返回expre1,否则返回expre1

coalesce(expre1,expre2,expre3,....) //从左至右判断,当某项不为空时,输出此项,不再向后判断

    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值