oracle sql 常用单行函数

  上一篇对oracle sql常用聚合函数进行了描述,这篇将对常用的单行函数进行描述。

  单行函数和聚合函数的区别是:单行函数每次只能对表中的一行记录进行作用。可以分为以下几类:

         1)字符函数

         2)数值函数

         3)日期函数

         4)转换函数

1)常用字符函数有:initcap、upper、lower、concat、instr、length、trim、replace、substr等。

lower(x)函数主要将参数x中的所有字符小写

SQL> select * from dept;

    DEPTNO DNAME          LOC
---------- -------------- -------------
        10 ACCOUNTING     NEW YORK
        20 RESEARCH       DALLAS
        30 SALES          CHICAGO
        40 OPERATIONS     BOSTON

SQL> --将dept表中DNAME列小写
SQL> select lower(dname) from dept;

LOWER(DNAME)
--------------
accounting
research
sales
operations

upper(x)函数主要将参数x中的所有字符大写

SQL> --将字符串'hello world'大写
SQL> select upper('hello world') from dual;

UPPER('HELL
-----------
HELLO WORLD

initcap(x)函数主要将参数x中的所有单词的首字母大写

SQL> --将字符串'hello world'中每个单词的首字母大写
SQL> select initcap('hello world') from dual;

INITCAP('HE
-----------
Hello World

concat(x,y)函数用于连接字符串x和y

SQL> --将字符串'hello'与'world'相连(无空格)
SQL> select concat('hello','world') from dual;

CONCAT('HE
----------
helloworld

instr(x,y,p1,p2)函数用于查询从指定的位置p1开始,字符串y在字符串x中第p2次出现时的位置。默认p1=1,p2=1.

SQL> select instr('hello world','l',4,2) from dual;

INSTR('HELLOWORLD','L',4,2)
---------------------------
                         10
length(x)函数 统计字符串x的长度(包含空格)

SQL> select length('hello world') from dual;

LENGTH('HELLOWORLD')
--------------------
                  11

trim(both|leading|trailing ch from string2) 函数用于 将string2中的两端|前端|后端 字符ch(不能是字符串) 去除

SQL> select trim(both '1' from '123321') from dual;

TRIM
----
2332

SQL> select trim(leading '1' from '123321') from dual;

TRIM(
-----
23321

SQL> select trim(trailing '1' from '123321') from dual;

TRIM(
-----
12332
replace(string,str_old,str_new)函数用于 将字符串string中的子串str_old替换成str_new

SQL> select replace('hello world','l','why') from dual;

REPLACE('HELLOWOR
-----------------
hewhywhyo worwhyd

substr(string,p1,p2)函数用于从字符串string的p1处截取长度为p2的子串。p1>=0都表示从字符串左端p1处开始往右截取(0和1都表示从第一位开始)p1<0则从右端第p1处开始往右截取。

SQL> select substr('hello world',0,2) from dual;

SU
--
he

SQL> select substr('hello world',-3,2) from dual;

SU
--
rl

2)常用的 数值函数有: abs,acos,cos,ceil,round,floor,log,mod,power,sqrt,trunc。比较简单不详细介绍,结果如下。

SQL> --计算x的绝对值
SQL> select abs(-1.1) from dual;

 ABS(-1.1)
----------
       1.1

SQL> --计算x的余切值
SQL> select acos(1) from dual;

   ACOS(1)
----------
         0

SQL> --计算x的余弦值
SQL> select cos(1) from dual;

    COS(1)
----------
.540302306

SQL> --计算x的向上取整值
SQL> select ceil(3.14) from dual;

CEIL(3.14)
----------
         4

SQL> --计算x的向下取整值
SQL> select floor(3.5) from dual;

FLOOR(3.5)
----------
         3

SQL> --计算x的四舍五入取整值
SQL> select round(3.5) from dual;

ROUND(3.5)
----------
         4

SQL> --计算以2为底4的对数值
SQL> select log(2,4) from dual;

  LOG(2,4)
----------
         2

SQL> --计算2的4次幂
SQL> select power(2,4) from dual;

POWER(2,4)
----------
        16

SQL> --计算以5的平方根
SQL> select sqrt(5) from dual;

   SQRT(5)
----------
2.23606798

SQL> --将数3.1415在第二位截断
SQL> select trunc(3.1415,2) from dual;

TRUNC(3.1415,2)
----------------
            3.14


3)常用的日期函数有:add_months,last_day,months_between,extract。

add_months(x,y) 用于在某个时间x上加上额外的月份数y。

SQL> --在当前时间上加上额外3个月
SQL> select sysdate,add_months(sysdate,3) from dual;

SYSDATE        ADD_MONTHS(SYS
-------------- --------------
05-6月 -17     05-9月 -17
last_day(x)用于计算当前月的最后一天。

SQL> select last_day(sysdate) from dual;

LAST_DAY(SYSDA
--------------
30-6月 -17

months_between(x,y)用于计算两个日期间的月份差值数

SQL> select months_between(sysdate,add_months(sysdate,-3)) from dual;

MONTHS_BETWEEN(SYSDATE,ADD_MONTHS(SYSDATE,-3))
----------------------------------------------
                                             3
EXTRACT(fmt FROM d),提取日期中的特定部分。

fmt 为:YEARMONTHDAYHOURMINUTESECOND。其中 YEARMONTHDAY可以为 DATE 类型匹配,也可以与 TIMESTAMP 类型匹配;但是 HOURMINUTESECOND 必须与 TIMESTAMP 类型匹配。

HOUR 匹配的结果中没有加上时区,因此在中国运行的结果小 小时。

4)转换函数

转换函数将值从一种数据类型转换为另外一种数据类型。常见的转换函数有:

1、TO_CHAR(d|n[,fmt]):把日期和数字转换为制定格式的字符串。Fmt是格式化字符串

TO_DATE(X,[,fmt])把一个字符串以fmt格式转换成一个日期类型

TO_NUMBER(X,[,fmt])把一个字符串以fmt格式转换成一个数字类型

 5)通用函数

NVL(X,VALUE)如果X为空,返回value,否则返回X

NVL2(x,value1,value2) 如果x非空,返回value1,否则返回value2


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值