Oracle内置函数

单行函数:当查询表或试图时每行都能返回一个结果,可用于select,where,order by等子句中。

对于没有目标的select查询用dual表,这个表时真实存在的,每个用户都可以读取。

单行函数常见的有四种。

数值型函数

 1. 绝对值函数:abs()

  

取余函数 :mod(a,b)

判断正负 sign()

2.三角函数

cos()

sin()

tan()

分别返回余弦、正弦、正切值,参数为弧度表示的角度

3.返回以指定数值为准整数的函数

ceil() 大于等于

floor() 小于等于

4.指数、对数函数

sqrt(n)  n的平方根

power(a,b)  a的b次幂

log(a,b) 以a为底b的对数

ln(n) 返回n的自然对数

5.四舍五入截取

round(a,b)  将a四舍五入成b指定位数

trunc(a,b) 将a截取到b指定位数

字符型函数

1.chr() 将ASCII码转换成字符

 ascii() 返回参数首字母的ascii码值

2.获取字符串长度

3.字符串截取

substr(char,position,length) 字符为单位

substrb(char,position,length) 字节为单位

substrc(char,position,length)unicode字符为单位

substr2(char,position,length) 以ucs2代码点为单位

 substr4(char,position,length) 以ucs4代码点为单位

4.字符串连接函数

concat(a,b)

5.字符串搜索函数

instr(char,substring,position,occurrence) 字符为单位

instrb(char,substring,position,occurrence) 字节为单位

instrc(char,substring,position,occurrence)unicode字符为单位

instr2(char,substring,position,occurrence) 以ucs2代码点为单位

 instr4(char,substring,position,occurrence) 以ucs4代码点为单位

6.大小写转换

upper() 转大写

lower() 转小写

initcap() 首字母转换成大写

7.为指定参数排序函数

nlssort(char,

'nls_sort=schinese_pinyin_m' //按照笔画、部首排序

8.替换字符串

replace(char,serch_string,replacement_string)

 

9.字符串填充函数

rpad(expr1,

n //直到长度n为止

expr2//不存在用空格代替

)

lpad(expr1,

n //直到长度n为止

expr2//不存在用空格代替

)

10 删除字符串首尾指定字符的函数

trim:

rtrim:删除右边的

 

ltrim:删除左边的

 

11.字符集名称和id互换

nls_charset_id(string) 得到字符集名称对应的id

nls_charset_name(1) 根据字符集ID得到名称

 

日期型函数

1.系统日期、时间函数

 sysdate函数,没有参数

 

systimestamp 函数

包含时区信息,精确到分秒

2.得到数据库时区函数

dbtimezone

3.为时区加上指定月份函数

1.add_months(data,integer)  给日期加一个月

2.sessiontimezone  返回当前会话的时区

3.返回指定日期对应月份的最后一天

 last_day()

  

4.返回指定日期后一周的日期天数

next_day(date,char)

 

5.返回会话所在时区当前日期函数

current_date

6.提取指定日期特定部分的函数

extract()

7.得到两个日期之间的月份数

months_between(a,b)

8.时区时间转换函数

new_time(date,timezone1,timezone2)

9.日期四舍五入、截取函数

round()

 

trunc()

 

转换函数

1.

字符串转ASCII函数

asciistr()

2.二进制转十进制

bin_to_num();

3.数据类型转换

cast(expr as type_name)

4.数值转成字符串

to_char

5.字符转日期

to_date

6.字符串转数字函数

to_number

 null函数

用来处理空值时比较好的选择

1.返回表达式为null的函数

coalesce() 返回里面第一个不为null的表达式

2.排除指定条件函数

lnnvl(condition)  得到除了condition要求条件之外的数据,通常用于where语句中

3.替换null值函数

nvl(expr1,expr2)

如果一为null<返回二,否则返回一

 

nvl2(1,2,3)

1为空,返回3,不为空,返回2

 

集合函数 

 使用到的表为pro表

 

配合group by或having使用

1.求平均值函数

avg(

[distinct|all] 去除重复的值|所有的值

exp:表达式

)

1) 最简单的使用方法

2) where条件子句可以使用条件,可以与grouup by 子句一起使用

3)演示价格大于2000的所有产品的所有产品的平均价格

2.求记录数量函数

count(

* //表示计算所有记录

| [distinct] //去除重复记录

[all] //所有记录

exp //要计算的对象

)

1) 记录pro表下所有的记录数

 

2)查询pro表的productprice字段低于3000的不重复记录数

 3.返回最大、最小值

min(

[distinct] //去除重复记录

[al] 所有的

expr 表的列

4.求和函数

sum(

distince //去除重复记录

all //所有的

expr // 表的列

)

 

其他函数

1.返回登录名

2.返回会话以及上下文信息函数

1) userenv()  返回当前会话信息 sessionid 会返回当前回话id,isdba返回是否dba

2)sys_context  得到oracle已经创建的context

3.表达式匹配函数

decode

 

查询origin字段出现次数最多的orgin.

 查询origin 字段出现次数最多的前两个origin,终于写出来了

 

posted @ 2017-10-25 17:19  竹马今安在  阅读(1410)  评论(0编辑  收藏  举报