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

猜你喜欢

转载自www.cnblogs.com/-821L/p/12071265.html
今日推荐