Oracle中一些常用的函数整理

select ceil(10),ceil(10.1),ceil(-10.5) from dual;



select greatest(1,2,3,-1,0) from dual;  --数字中的最大值

select greatest('one','ten') from dual;  --字符串中的最大值

select greatest(to_date('2014-01-08','yyyy-mm-dd'),to_date('2013-05-08','yyyy-mm-dd')) from dual;

select least(1,2,3,-10,0) from dual;  --数字中最小值


select trunc(sysdate,'yyyy-mm') from dual;


select ASCII('a'),ASCII('abc') from dual;

select CONCAT('Good','Morning'), 'Good' || 'Morning' from dual; --concat 相当于连接操作符(||)

select INITCAP('Good MORNING,QQ') from dual;  --首字母大写,其余字母小写


select instr('easycome,easygo','easy') from dual;
select instr('easycome,easygo','easy',1,2) from dual;

select instrb('easycome,easygo','easy') from dual;
select instrb('easycome,easygo','easy',1,2) from dual;

select length('ABC') from dual;  --返回字符串中的字符数
select lengthb('ABC') from dual;  --返回字符串中的字节数,一般情况下lengthb返回结果与length相同,使用多字节字符集时有所不同;

select lower('ADB') from dual;  --将所有字符串转换为小写
select upper('abD') from dual;  --将所有字符串转换为大写

LPAD(String1,n[,String2]) --在String1的左边添加空格,或者重复填充由String2指定的字符串,直到结果字符串达到n个字符为止;[,String2]为可选参数,默认为单个空格
select LPAD('X',3),LPAD('X',3,'Y'),LPAD('RIGHT',12,'LEFT') from dual;
select RPAD('X',3),RPAD('X',3,'Y'),RPAD('RIGHT',12,'LEFT') from dual;




select LTRIM(string1,[,string2]) from dual; --string1指定要删除的字符串,string2指定包含要被删除的字符集的字符串,该参数默认为单个空格,当函数遇到字符串中没有提供字符时,删除字符过程结束
select LTRIM(' ABC miss') from dual;
select RTRIM(' ABC miss.   ') from dual;
select LTRIM(' ****@@*@**ABC miss','*@') from dual;


select replace('123abc456d111','abc') from dual;
select replace('123abc456d111','abc','ABC') from dual;


select soundex('i') from dual;

select subStr('OneTwoThree',7) from dual;
select subStr('OneTwoThree',4,3) from dual;
select subStr('OneTwoThree',-5) from dual;


select TRANSLATE('123.45','0123456789','abcdefghij') from dual;
select TRANSLATE('123.45','0123456789.','abcdefghij') from dual;


select trim(' ABC  ') from dual;  --去左右空格
select trim(LEADING FROM ' ABC  ') from dual;  --去左边空格
select trim(TRAILING FROM ' ABC  ') from dual;  --去右边空格
select trim(BOTH FROM ' ABC  ') from dual;  --去左右空格
select trim(LEADING '$' from '$123.45$') from dual;

select lower('ABC') from dual;
select upper('abc') from dual;


select add_months(sysdate,1) from dual;
select add_months(sysdate,-1) from dual;
select add_months(date'2014-01-29',1) from dual;

select last_day(sysdate) from dual;  --当前月的最后一天

select months_between(date'2014-12-25',date'2013-12-25') from dual;


select to_date('2014-03-01','yyyy-mm-dd') - 1 from dual;

--select next_day('20-May-2000','Sun') from dual;

alter session set nls_date_format = 'yyyy-mm-dd hh24:mi';
select round(to_date('2014-12-25 16:35')) day,
       round(to_date('2014-12-25 16:35'),'hh') hour,
       round(to_date('2014-12-25 16:35'),'yyyy') year  from dual;

alter session set nls_date_format = 'yyyy-mm-dd hh24:mi';      
select trunc(to_date('2014-12-25 16:35')) day,
       trunc(to_date('2014-12-25 16:35'),'hh') hour,
       trunc(to_date('2014-12-25 16:35'),'yyyy') year  from dual;
      

--转换函数:
---------允许将一种数据类型转换为另一种数据类型:
to_char:转换日期和数字值为字符串
to_date:转换字符串为日期值
to_number:转换字符串为数字
select * from dual where rowid = CHARTOROWID('AAAAECAABAAAAgiAAA'); --将char或varchar2型值转换为rowid的值
convert(string,dest_char_set[,sourch_char_set]):--将字符串从一个字符集转换为另外一个字符集
select convert(chr(194) || chr(133) || chr(64) || chr(213) || chr(137) || chr(131) || chr(133),'US7ASCII') from dual;
select dump(hextoraw('C28540D5B983B5')) from dual;  --转换字符串中包含的十六进制数字对应于那些数字组成的raw值
select rawtohex(hextoraw('C28540D5B983B5')) from dual;  --转换raw值为十六进制数字的字符串
select rowid, rowidtochar(rowid) from dual;

--to_lob
select to_multi_byte('Be nice') from dual; --转换单字节字符为多字节等同物
select to_single_byte('Be nice') from dual; --转换多字节字符为单字节等同物
select translate('be nice' USING NCHAR_CS) from dual; --转换文本为数据库字符集或国际字符集

decode:提供嵌入if语句的能力--限制最大有255个参数

select dump(sysdate) from dual;
select empty_blob() from dual; --返回空blob的位置,可以用于初始化blob列;
select empty_clob() from dual; --返回空clob的位置,可以用于初始化clob列;

select nls_charset_decl_len(100,nls_charset_id('US7ASCII')) from dual; --在提供的字节计数的基础上,返回nchar列的定义宽度
select nls_charset_id('US7ASCII'),nls_charset_id('WE8EBCDIC37C') from dual;  --
select nls_charset_name(1),nls_charset_name(90) from dual;


select nvl(null,'Is Null') from dual;
select nvl('NOT Null','Is Null') from dual;

sys_context(namespace,attribute_name,[,length])--返回应用程序上下文命名空间中的属性值
select sys_context('USERENV','SESSION_USER') from dual;


select sys_guid() from dual;  --返回可以用作全局唯一标识符的16字节的RAW值
select UID from dual;  --返回唯一定义当前数据库用户的整数值
select user from dual; --返回当前用户,在存储过程或函数中调用时,返回存储过程或函数所有者的名字;在触发器中调用时,返回登录用户名
select userenv('INSTANCE'), userenv('ISDBA') from dual; --返回有关当前用户的信息
select vsize(sysdate) from dual;  --以字节的形式返回内部代表值的大小
select length(sysdate) from dual;

你可能感兴趣的:(oracle)