oracle里面行,ORACLE中的单行函数

1、字符

lower :小写

upper:大写

substr:取字符

Exp:SUBSTR('The Three Musketeers',1,3)

instr:返回从第三个字符开始,第二次出现i的位置

Exp:INSTR('Mississippi', 'i',3,2)

initcap:首字母大写

length:查看字符的长度

lengthb:查看字符的长度按照BIT算,中文是2个BIT

ltrim:左边消除指定的字符

lpad:左边补足相应的字符

rtrim:右边消除指定的字符到最后一个未出现的位置为止

Exp:RTRIM('Mississippi','ip')

rpad:右边补足相应的字符,列子补足字段table_name为38位,右边用.补足

RPAD(table_name,38,'.')

Replace:完全匹配的替换相应字符

Exp:REPLACE('uptown','up','down')

Translate:对对应字符进行完全转换、

Exp:TRANSLATE('fumble','uf','aR')

Trim:去掉首尾(也可以只去掉左边和右边的,但是意义不大可以用ltrim和rtrim代替)的相应字符,列子中为去掉首尾的.,默认为去掉首尾的空格

Exp:select length(trim(both '.'from '........woai......')),length('woai') from dual;

2、数字

Abs:取绝对值

Exp:abs(-10)

ceil:取整,向正无穷取

Exp:

SQL> select ceil(10.2),ceil(-10.2) from dual;

CEIL(10.2) CEIL(-10.2)

---------- -----------

11-10

Floor:取整,向负无穷取

Exp:

SQL> select floor(10.2),floor(-10.2) from dual;

FLOOR(10.2) FLOOR(-10.2)

----------- ------------

10-11

log取幂

Exp:

SQL> select log(2,64) from dual;

LOG(2,64)

----------

6

mod取余

Exp:

SQL> select mod(35,8),mod(-49,8) from dual;

MOD(35,8) MOD(-49,8)

---------- ----------

3-1

power幂集

Exp:

SQL> select power(8,3) from dual;

POWER(8,3)

----------

512

round四舍五入

Exp:

SQL> select round(15.555,2),round(15.554,2) from dual;

ROUND(15.555,2) ROUND(15.554,2)

--------------- ---------------

15.5615.55

trunc截断,不同于四舍五入

Exp:

SQL> select round(15.555,2),round(15.554,2),trunc(15.555,2),round(15.554,2) from dual;

ROUND(15.555,2) ROUND(15.554,2) TRUNC(15.555,2) ROUND(15.554,2)

--------------- --------------- --------------- ---------------

15.5615.5515.5515.55

bitand:对于位取值,然后换算2进制为10进制

比如 100,110  第一位 都是1取1 第二位前者为1或者为0 取0,第三位都为0取0,下面的列子是v$lock中 tx id1 对应 v$transaction XIDUSN ,XIDSLOT的换算,高16位为XIDUSN,低16位为XIDSLOT

exp:

SQL> select trunc(655404/power(2,16)),bitand(655404,to_number('ffff','xxxx')) from dual;

TRUNC(655404/POWER(2,16)) BITAND(655404,TO_NUMBER('FFFF'

------------------------- ------------------------------

10                             44

bin_to_num:二进制转换为10进制

Exp:

SQL> select BIN_TO_NUM(1,1,1,1) from dual;

BIN_TO_NUM(1,1,1,1)

-------------------

15

3、日期

add_months:增加相应的月份

Exp:

SQL> select add_months(sysdate,1) from dual;

ADD_MONTHS(SYSDATE,1)

---------------------

2012/5/23 23:18:58

current_date:会话当前时间

Exp:

select sysdate,current_date,sessiontimezone from dual;

CURRENT_TIMESTAMP:会话当前时间带上时区

Exp:

SQL> SELECT CURRENT_TIMESTAMP FROM dual;

CURRENT_TIMESTAMP

-------------------------------------------------

23-APR-12 11.39.00.676507 PM +08:00

EXTRACT:抽取相应的时间部分

Exp:

SELECT SYSDATE

,EXTRACT(YEAR FROM SYSDATE ) YEAR

,EXTRACT(MONTH FROM sysdate) MONTH

,EXTRACT(day FROM sysdate) DAY

FROM dual;

last_day:月的最后一天

Exp:

select last_day(add_months(sysdate,1)) from dual;

months_between:月份相减

Exp:

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

MONTHS_BETWEEN(SYSDATE,ADD_MON

------------------------------

-1

待续。。。。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值