单行函数:当查询表或试图时每行都能返回一个结果,可用于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,终于写出来了

Oracle内置函数的更多相关文章

  1. oracle 内置函数 least decode

    在博客园的第一个博客,为什么叫第一个.... oracle 内置函数 east(1,2,3,4.....) 可以有多个值,最多几个?不知道欢迎补充 ,,,) from dual 这个函数返回是1,就是 ...

  2. SQL入门(2): Oracle内置函数-字符/数值/日期/转换/NVL/分析函数与窗口函数/case_decode

    本文介绍Oracle 的内置函数. 常用!  一. 字符函数 ASCII 码与字符的转化函数 chr(n)   例如 select chr(65) || chr(66) || chr(67) , ch ...

  3. ORACLE 内置函数之 GREATEST 和 LEAST(转)

    Oracle比较一列的最大值或者最小值,我们会不假思索地用MAX和MIN函数,但是对于比较一行的最大值或最小值呢?是不是日常用的少,很多人都不知道有ORACLE也有内置函数实现这个功能:COALESC ...

  4. oracle——学习之路(oracle内置函数)

    oracle与很多内置函数,主要分为单行函数与集合函数. 首先要提一下dual表,它oracle的一个表,没有什么实质的东西,不能删除它,否则会造成Oracle无法启动等问题,他有很大用处,可以利用它 ...

  5. Oracle内置函数:时间函数,转换函数,字符串函数,数值函数,替换函数

    dual单行单列的隐藏表,看不见 但是可以用,经常用来调内置函数.不用新建表 时间函数 sysdate 系统当前时间 add_months 作用:对日期的月份进行加减 写法:add_months(日期 ...

  6. Oracle内置函数SQLCODE和SQLERRM的使用

    在我们写proc程序中经常要有错误处理,在错误处理中我们经常要输出错误信息来给帮助我们分析和解决错误原因,从而更正数据.这时候就会用到SQLCODE和SQLERRM. SQLCode:数据库操作的返回 ...

  7. Oracle 内置函数

    三. 字符函数(可用于字面字符或数据库列) 1,字符串截取 select substr('abcdef',1,3) from dual 2,查找子串位置 select instr('abcfdgfdh ...

  8. Oracle内置函数大全(转)

    SQL中的单记录函数 1.ASCII 返回与指定的字符对应的十进制数;SQL> select ascii('A') A,ascii('a') a,ascii('0') zero,ascii(' ...

  9. Oracle内置函数内容整理

    --绝对值select abs(-100) from dual; --取余select mod(8,3) from dual; --取整,大于该数的最小整数(上限值)select ceil(12.0) ...

随机推荐

  1. 字典树HihoCoder - 1014

    输入的第一行为一个正整数n,表示词典的大小,其后n行,每一行一个单词(不保证是英文单词,也有可能是火星文单词哦),单词由不超过10个的小写英文字母组成,可能存在相同的单词,此时应将其视作不同的单词.接 ...

  2. C++11 中的function和bind、lambda用法

    std::function 1. std::bind绑定一个成员函数 #include <iostream> #include <functional> struct Foo ...

  3. Go中的panic和recover

    这两个内置函数,用来处理go的运行时错误. panic用来主动抛出错误, recover用来捕获panic抛出的错误. recover()和defer一起使用, 但是recover()只有在defer ...

  4. IPMI无法执行命令

    IPMI无法执行命令 https://www.cnblogs.com/EricDing/p/8995263.html http://www.cnblogs.com/heidsoft/p/4014301 ...

  5. [转] Webpack的devtool和source maps

    source maps Webpack打包生成的.map后缀文件,使得我们的开发调试更加方便,它能帮助我们链接到断点对应的源代码的位置进行调试(//# souceURL),而devtool就是用来指定 ...

  6. error C1128: 节数超过对象文件格式限制: 请使用 /bigobj 进行编译

    VS2015出现如上错误. 默认情况下,对象文件最多可存放 65,536 (2^16) 个可寻址的节. 这种情况不管指定哪个目标平台. /bigobj 可将该地址容量增加至 4,294,967,296 ...

  7. 从源码开始运行Bitcoin Core

    安装Ubuntu 环境:虚拟机 网络连接:桥接 系统版本:16.04 源:ali 安装编译环境(依赖库) sudo apt-get update sudo apt-get install build- ...

  8. tomcat配置介绍

    第一节java的介绍 java需要一个java的运行环境 JDK:包含了好几个java组件,包含类库(API) 开发工具(java) jvm(java虚拟机)JRE(类库) tomcat:开源  企业 ...

  9. Redis数据库 02事务| 持久化| 主从复制| 集群

    1. Redis事务 Redis不支持事务,此事务不是关系型数据库中的事务: Redis事务是一个单独的隔离操作:事务中的所有命令都会序列化.按顺序地执行.事务在执行的过程中,不会被其他客户端发送来的 ...

  10. POJ 2531-Network Saboteur(dfs)

    题目链接:https://vjudge.net/problem/POJ-2531 最大流-最小割问题: https://wenku.baidu.com/view/54323c030722192e453 ...