Oracle常用函数(略微少了点 不过是自己稍微整理的)
Oracle常用函数(略微少了点 不过是自己稍微整理的)
DECODE
DECODE(value ,if 1, then 1,if 2,then 2, ….,else)
解析:
if 条件=1
return (value 1)
if条件=2
return (value 2)
else
return (default)
NVL
NVL(n1 ,n2)
解析:
if n1==null return n2 else return n1
if n1==null and n2==null return null
NVL2
解析:
NVL2(n1,n2,n3)
if n1==null return NVL2()==n3 else return NVL2()==n2
NULLIF
NULLIF(n1,n2)
解析:
if n1==n2 return null else return n1
SUM
计算数据总和
SUBSTR
1、SUBSTR(string string, int a, int b)
参数1: String要处理的字符串
参数2: a 截取字符串的开始位置(起始位置是0)
参数3: b 截取的字符串的长度(而不是字符串的结束位置)
例如:
SUBSTR(“ABCDEFG”, 0); //返回:ABCDEFG,截取所有字符
SUBSTR(“ABCDEFG”, 2); //返回:CDEFG,截取从C开始之后所有字符
SUBSTR(“ABCDEFG”, 0, 3); //返回:ABC,截取从A开始3个字符
SUBSTR(“ABCDEFG”, 0, 100); //返回:ABCDEFG,100虽然超出预处理的字符串最长度,但不会影响返回结果,系统按预处理字符串最大数量返回。
SUBSTR(“ABCDEFG”, -3, 3); //返回:EFG,注意参数-3,为负值时表示从尾部开算起,字符串排列位置不变。
TO_CHAR
一、日期格式转换
**to_char(date,’格式’);**
“`
`select to_date(“’2005-01-01 ‘“,“’yyyy-MM-dd’“) from dual;“select to_char(sysdate,“’yyyy-MM-dd HH24:mi:ss’“) from dual;`
“`
二、数字格式转换
**to_char(number,’格式’);**
“`
`select to_char(“88877“) from dual;“select to_char(“1234567890“,“’099999999999999’“) from dual;“select to_char(“12345678“,“’999,999,999,999’“) from dual;“select to_char(“123456“,“’99.999’“) from dual;“select to_char(“1234567890“,“’999,999,999,999.9999’“) from dual;`
“`
三、金钱格式转换
**to_char(salary,’$99,99′);**
“`
`select TO_CHAR(“123“,“’$99,999.9’“) from dual;`
“`
四、**进制转换:10进制转化为16进制**
“`
`select to_char(“4567“,“’xxxx’“) from dual;“select to_char(“123“,“’xxx’“) from dual;`
“`
WM_CONCAT
实现行转列功能,即将查询出的某一列值使用逗号进行隔开拼接,成为一条数据。相当于group_concat