从Oracle学习笔记之四,SQL语言入门中摘出来的,独立成一章节

3.1 字符类函数

  1. ASCII(c)和CHR(i)    分别用于返回一个字符的ASCII码和返回给定ASCII值所对应的字符。
  2. CONCAT(s1,s2)    将字符串s2连接到字符串s1的后面。任一字符串为空值则忽略此空值;两值都为空值则返回null。同样“||"也有此功能,且更方便些。
  3. INITCAP(s)    将字符串s的每个单词的第一个字母大写,其它字母小写。
  4. INSTR(s1,s2[,i][,j])    该函数用于返回字符串s2在s1中第j次出现时的位置,从i位开始搜索。如果i为负数,则搜索从右到左进行。
  5. LENGTH(s)    返回字符串s的长度。注意:一个汉字的长度是1。
  6. LOWER(s)和UPPER(s)    返回字符串s的小写与大写形式。
  7. LTRIM(s1,s2)、RTRIM(s1,s2)   分别移去字符串开始、结尾部分指定字符。默认空格。
  8. TRIM( [ leading | trailing | both  [ trim_character ]  ]   string1 )     该函数移去字符串开始与结尾部分指定字符。也可以只移去开始或者是结尾部分指定字符。
  9. REPLACE(s1,s2[,s3])    该函数使用s3字符串替换出现在s1字符串中的所有s2字符串,返回替换后的新字符串。s3默认值为空字符串。
  10. SUBSTR(s,i,[j])   从字符串s1的第i个位置截取长度为j的子字符串。省略j则取到尾部。
select ASCII('A'),CHR(65) from dual;
--65 A
select CONCAT('Hello ','World'),'Hello '||'World' from dual;
--Hello World Hello World
select INITCAP('I am a good boy!') from dual;
--I Am A Good Boy!
select INSTR('Hello World...','World',1,1),INSTR('Hello World...','World',-1,1) from dual;
--7 7
select LENGTH('Hello') from dual;
--
select LOWER('Hello'),UPPER('Hello') from dual;
--hello HELLO
select LTRIM('###Hello##','#'),RTRIM('###Hello##','#') from dual;
--Hello## ###Hello
select TRIM(' tech '),TRIM(' ' from ' tech '),TRIM(leading '' from ''),TRIM(trailing '' from 'Tech1'),TRIM(both '' from '123Tech111') from dual;
--tech tech 123 Tech 23Tech
select REPLACE('Hello World','World','Beijing'),REPLACE('Hello World','World') from dual;
--Hello Beijing Hello
select SUBSTR('Hello World',1,5),SUBSTR('Hello World',6) from dual;
--Hello World

3.2 数字类函数

  1. CEIL(n)         返回大于或等于数值n的最小整数。
  2. ROUND(n1,n2)  返回舍入小数点右边n2位的n1的值,n2默认值为0。如果n2为负数,就舍入到小数点左边的相应的位上。
  3. POWER(n1,n2)  返回n1的n2次方。
  4. MOD(n1,n2)      返回n1除以n2的余数。
  5. ABS(n)             返回n的绝对值。
  6. FLOOR(n)         返回小于或等于n的最小整数。
select CEIL(7.3) from dual;
--
select ROUND(123.4567,2),ROUND(123.4567),ROUND(123.4567,-2) from dual;
--123.46 123 100
select POWER(2,3) from dual;
--
select MOD(10,3) from dual;
--
select ABS(-10) from dual;
--
select FLOOR(7.3) from dual;
--

3.3 日期和时间类函数

  1. SYSDATE()                返回系统当前日期。
  2. MONTHS_BETWEEN(d1,d2)    返回d1和d2之间的数目,若d1与d2的日期(DAY)都相同,或者都是该月的最后一天,则返回一个整数,否则返回的结果将包含一个小数。
  3. LAST_DAY(d)             返回包含日期d月份的最后一天。
  4. NEXT_DAY(d,day)      返回d后第一周指定day的日期。
  5. ADD_MONTHS(d,i)     返回日期d加上i个月之后的结果,i为任意整数。
select SYSDATE from dual;
--2013/7/27 星期六 20:59:34
select MONTHS_BETWEEN(TO_DATE('2013-7-27','yyyy-mm-dd'),TO_DATE('2013-12-7','yyyy-mm-dd')) from dual;
---4.35483870967741935483870967741935483871
select LAST_DAY(TO_DATE('2013-7-27','yyyy-mm-dd')) from dual;
--2013/7/31 星期三
select NEXT_DAY(TO_DATE('2013-7-27','yyyy-mm-dd'),'星期二') from dual;
--2013/7/30 星期二
select ADD_MONTHS(TO_DATE('2013-7-27','yyyy-mm-dd'),2) from dual;
--2013/9/27 星期五

3.4 转换类函数

  1. TO_CHAR(x[,format])     该函数实现将表达式转换为字符串。

    参考:http://www.java2s.com/Tutorial/Oracle/0300__Conversion-Functions/0140__TO_CHAR.htm

  2. TO_DATE(s[,format])     该函数实现将字符串s转换为日期类型。
  3. TO_NUMBER(s[,format])     该函数返回字符串s代表的数字。

    参考:http://www.java2s.com/Tutorial/Oracle/0300__Conversion-Functions/0160__TO_NUMBER.htm

select TO_CHAR(sysdate,'yyyy-mm-dd hh24:mi:ss'),TO_CHAR(12345.67, '$99,999.99') from dual;
--2013-07-27 21:00:12 $12,345.67
select TO_DATE('2013-7-27 12:43:32','yyyy-mm-dd hh24:mi:ss') from dual;
--2013/7/27 星期六 12:43:32
select TO_NUMBER('98.32'),TO_NUMBER('$98.32','$999.99'),TO_NUMBER('1E+6','9.99EEEE') from dual;
--98.32 98.32 1000000

3.5  聚合类函数

  1. AVG(x[DISTINCT|ALL])          计算选择列表项的平均值。
  2. COUNT(x[DISTINCT|ALL])      返回查询结果中的记录数。
  3. MAX(x[DISTINCT|ALL])          返回选择列表项目中的最大数。
  4. MIN(x[DISTINCT|ALL])          返回选择列表项目中的最小数。
  5. SUM(x[DISTINCT|ALL])          返回选择列表项目的数值总和。
select AVG(BROWSE_COUNT) from BBSDETAIL;
--2378.136894183198040251693164897449445218
select MAX(BROWSE_COUNT) from BBSDETAIL;
--
select MIN(BROWSE_COUNT) from BBSDETAIL;
--
select SUM(BROWSE_COUNT) from BBSDETAIL;
--

3.6 其它辅助函数

  1. DECODE(exp,s1,r1,s2,r2..s,r[,default])     在一个函数内实现if else的功能。exp为输入值,s做为对比值,相同则返回r,如果s有多个,则持续遍历所有s,直到某个条件为真为止;匹配不成功时返回默认值default,如果没有默认值,则返回空。
  2. GREATEST(n1,n2,...n)     返回序列中的最大值。
  3. LEAST(n1,n2....n)           返回序列中的最小值。
  4. NULLIF(c1,c2)                逻辑等价于:case when c1 = c2 then null else c1 end。
  5. NVL(c1,c2)                     逻辑等价于:if c1 is null then c2 else c1 end。
select DECODE('CM','AM','RE1','BM','RE2','CM','RE3','UNKNOWN') from dual;
--RE3
select GREATEST(12,34,55,1,23,12) from dual;
--
select LEAST(12,34,55,1,23,12) from dual;
--
select NULLIF('Hello','World'),NULLIF('Hello','Hello') from dual;
--Hello
select NVL('Hello','World'),NVL(null,'World') from dual;
--Hello World

Oracle学习笔记之四sp1,Oracle 11g的常用函数的更多相关文章

  1. Oracle学习笔记之四,SQL语言入门

    1. SQL语言概述 1.1 SQL语言特点 集合性,SQL可以的高层的数据结构上进行工作,工作时不是单条地处理记录,而对数据进行成组的处理. 统一性,操作任务主要包括:查询数据:插入.修改和删除数据 ...

  2. Oracle学习笔记二 初识Oracle(二)

    Windows 中的 Oracle 服务 Oracle 9i的每个实例在Windows中都作为一项服务启动 服务是在 Windows 注册表中注册的可执行进程,由 Windows 操作系统管理 “服务 ...

  3. Oracle学习笔记之五,Oracle 11g的PL/SQL入门

    1. PL/SQL概述 PL/SQL(Procedural Language/SQL)是Oracle的专用语言,是对标准SQL语言的扩展,它允许在其内部嵌套普通的SQL语句,还可以定义变量和常量,允许 ...

  4. Oracle学习笔记之五sp1,PL/SQL之BULK COLLECT

    Bulk Collect特性可以让我们在PL/SQL中能使用批查询,批查询在某些情况下能显著提高查询效率. BULK COLLECT 子句会批量检索结果,即一次性将结果集绑定到一个集合变量中,并从SQ ...

  5. Oracle学习笔记之三,Oracle 11g数据库的启动与关闭

    SQL*PLus命令 SQLPLUS username[/password][@connect_identifier][AS SYSOPER|SYSDAB] 1. 启动数据库实例 STARTUP [n ...

  6. 【Oracle学习笔记-2】Oracle基础术语解析

    来自为知笔记(Wiz) 附件列表 Oracle概念解析.png 表空间.png 大小关系.png 段segment.png 块block.png 区entent.png 数据库基本概念.png

  7. Oracle学习笔记一 初识Oracle

    数据库简介 数据库(Database)是按照数据结构来组织.存储和管理数据的仓库.SQL 是 Structured Query Language(结构化查询语言)的首字母缩写词. 定义 数据库,简单来 ...

  8. Oracle 学习笔记2:几个入门常用命令

    oracle提供的交互方式有两种:sqlplus(命令行) sqlplusw(图形界面) 进入sqlplus方式:cmd中输入sqlplus 进入sqlplusw方式:cmd中输入sqlplusw 更 ...

  9. 【oracle学习笔记02】Oracle Architecture —— Process Structure

    Oracle中有三类进程: 1 User Process 2 Server Process Server Process is a program that directly interacts wi ...

随机推荐

  1. linux下mysql-5.5.15安装详细步骤

    linux下mysql-5.5.15安装详细步骤 注:该文档中用到的目录路径以及一些实际的值都是作为例子来用,具体的目录路径以各自安装时的环境为准 mysql运行时需要一个启动目录.一个安装目录和一个 ...

  2. JavaScript 之 截取字符串函数

    一.函数:split() 功能:使用一个指定的分隔符把一个字符串分割存储到数组 例子: str=”jpg|bmp|gif|ico|png”; arr=theString.split(”|”); //a ...

  3. ubuntu server 安装 question2answer 及 汉化包

    ubuntu server 安装 question2answer 及 汉化包 question2answer 是一个非常简洁方便的问答系统,可以用它快速的部署一个问答社区,提高在开发中的交流沟通效率: ...

  4. 算法笔记_208:第六届蓝桥杯软件类决赛真题(Java语言A组)

    目录 1 胡同门牌号 2 四阶幻方 3 显示二叉树 4 穿越雷区 5 切开字符串 6 铺瓷砖   前言:以下代码仅供参考,若有错误欢迎指正哦~ 1 胡同门牌号 标题:胡同门牌号 小明家住在一条胡同里. ...

  5. SpringMVC通过邮件找回密码功能的实现

    1.最近开发一个系统,有个需求就是,忘记密码后通过邮箱找回.现在的系统在注册的时候都会强制输入邮箱,其一目的就是 通过邮件绑定找回,可以进行密码找回.通过java发送邮件的功能我就不说了,重点讲找回密 ...

  6. css before和after伪元素应用

    1.说明 ":before" 伪元素可以在元素的内容前面插入新内容. ":after" 伪元素可以在元素的内容之后插入新内容. 伪元素默认展示为inline, ...

  7. 解决-bash: fork: retry: Resource temporarily unavailable (修改最大线程数)

    错误提示的本质是Linux操作系统无法创建更多进程,导致出错.因此要解决这个问题需要修改Linux允许创建更多的进程. 方案一: cat /etc/security/limits.conf echo ...

  8. C10K——千万级并发实现的秘密:内核不是解决方案,而是问题所在!(转)

    既然我们已经解决了 C10K并发连接问题,应该如何提高水平支持千万级并发连接?你可能会说不可能.不,现在系统已经在用你可能不熟悉甚至激进的方式支持千万级别的并发连接. 要知道它是如何做到的,我们首先要 ...

  9. 〖Linux〗使用gsoap搭建web server(C++)

    1. gsoap的好处就不用说了:百度百科 2. gsoap的下载地址:项目地址,目前我使用的是2.8.15版本 3. 开发环境:Ubuntu13.10 4. 具体操作步骤(以简单相加为例): 1)编 ...

  10. import 导包三种方法

    # -*- coding: utf-8 -*- #python 27 #xiaodeng #导包三种方法 #(常用)完整的导入,也是最基本的方法 import re #自己定义别名,一般情况下尽量少用 ...