Oracle函数脚本记录

--内置函数
--聚合函数 返回单个值
select count(*) from student where sclass=‘95031‘;   --count()记录条数
select sum(degree) from score t;                    --sum(degree)求成绩总和
select avg(degree) from score t;                    --avg(degree)求成绩平均值
select max(degree),min(degree) from score t;        --max(degree),min(degree)分别为成绩最大值,最小值
select max(degree),min(degree),avg(degree),sum(degree) from score t;   --可以用一行将所有聚合函数全部计算出来

--转换函数
select sname,sno,sbirthday from student where to_char(sbirthday,‘yyyy‘)= (select to_char(s.sbirthday,‘yyyy‘) from student s where s.sno=‘108‘);
--to_char 将日期转化成字符串,日期格式 ‘yyyy-mm-dd hh24:mi:ss‘
select * from student where sbirthday >=to_date(‘1976-1-1‘,‘yyyy-mm-dd‘)         --to_date 将字符串转化成日期

--时间函数
select cast(‘123‘ as number) from dual;
select sysdate from dual;      --获取数据库当前时间
select sysdate+1 from dual;        --日期里的日进行加1日;
select add_months(sysdate,+1) from dual;   --月份加1月

--数值函数
--绝对值
select abs(-123) from dual;
--求模
select mod(12,5) from dual;
--取整
--取上限值
select ceil(123.35) from dual;
--取下限值
select floor(123.35) from dual;
--四舍五入
select round(123.35) from dual;
select round(123.4567,2) from dual;       --根据保留位数在四舍五入,保留两位小数
select round(123.4567,-1) from dual;        --个位数进行四舍五入,以小数点作为远点进行加减
--舍去小数点
select trunc(123.35) from dual;
select trunc(123.35,1) from dual;

--字符串函数
--计算长度
select sname, langth(sname) from student;
--去空格
select trim(‘  asas  ‘) from dual;
select ltrim(‘  asas  ‘) from dual;        --左侧去空格
select rtrim(‘  asas  ‘) from dual;        --右侧去空格
--替换
select replace(‘ ab cd ‘,‘ ‘,‘‘) from dual;
select replace(sname,‘王‘,‘liu‘) from student where sname like ‘王%‘;
--查找字符串
select instr(‘abcd‘,‘a‘) from dual;            --查询索引值从1开始,找不到返回0
--截取字符串
select substr(‘abcde‘,‘1‘) from dual;         --0或者1都是从1位开始往后截取,到最后
select substr(‘abcde‘,-1) from dual;        --从右侧进行截取,截取结果为e
select substr(‘abcde‘,2,3) from dual;        --截取结果为bcd,从截取位置开始算取3位长度
select substr(‘abcde‘,-2,3) from dual;        --截取结果为dc,从最右边开始截取到3个长度
select aname,substr(sname,1,1)||‘同学‘ from student;

--其他函数
select avg(nvl(degree,0)) from score;             --将空值赋个默认值为0,在进行平均数计算;
select t.* decode(ssex,‘1‘,‘男‘,‘2‘,‘女‘,‘不知道‘) from STUDENT t;  --将1换成男,2换成女,如果没有,显示‘不知道’
时间: 2024-11-08 15:38:47

Oracle函数脚本记录的相关文章

Oracle多行记录合并的几种方法

今天正好遇到需要做这个功能,顺手搜了一下网络,把几种方法都列出来,方便以后参考. 1 什么是合并多行字符串(连接字符串)呢,例如: SQL> desc test; Name Type Nullable Default Comments ------- ------------ -------- ------- -------- COUNTRY VARCHAR2(20) Y CITY VARCHAR2(20) Y SQL> select * from test; COUNTRY CITY ---

oracle 函数集锦

oracle的函數很多﹐特整理出來﹕ abs(m)  m的绝对值mod(m,n) m被n除后的余数power(m,n) m的n次方round(m[,n]) m四舍五入至小数点后n位的值(n缺省为0)trunc(m[,n]) m截断n位小数位的值(n缺省为0) 字符函数: initcap(st) 返回st将每个单词的首字母大写,所有其他字母小写lower(st) 返回st将每个单词的字母全部小写upper(st) 返回st将每个单词的字母全部大写concat(st1,st2)  返回st为st2接

oracle 查询当天记录 三种方法效率比较

-- 查询一表中当天生成的数据 -- 原表mobilefrends中的cdate字段上有索引,创建索引语句是:create index mobilefrends_cdate_idx on mobilefrends(cdate); --------------------------------------------------------------------------------------------------------------------- -- 方法一:用to_char()

Oracle函数sys_connect_by_path 详解

语法:Oracle函数:sys_connect_by_path 主要用于树查询(层次查询) 以及 多列转行.其语法一般为:       select ... sys_connect_by_path(column_name,'connect_symbol')  from table        start with ... connect by ... prior理解:对于数据库来说,根节点并不一定是在数据库中设计的顶级节点,而是start with开始的地方.sys_connect_by_pa

【函数】Oracle函数系列(1)--字符函数

[函数]Oracle函数系列(1)--字符函数 1  BLOG文档结构图 2  前言部分 2.1  导读和注意事项 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识,~O(∩_∩)O~: ① 常见字符函数(lower.upper.initcap.concat.substr.length.intr.lpad.rpad.trim.chr.ascii.replace.translate)的使用 ② 判断字符串中是否含有汉字 ③ substr和instr的联合使用 ④

初探oracle删除重复记录,只保留rowid最小的记录

如题,初探oracle删除重复记录,只保留rowid最小的记录(rowid可以反映数据插入到数据库中的顺序) 一.删除重复记录可以使用多种方法,如下只是介绍了两种方法(exist和in两种). 1.首先创建一个测试表. create table my_users( id number, username varchar2(20), sal number ) 2.插入测试数据 begin for i in 1..10 loop insert into my_users values(i,'carl

ORACLE函数之单行数字函数

 1.           ABS(X) 返回X的绝对值 SQL>SELECT ABS(-1) A,ABS(1) B,ABS(0) C FROM DUAL; A          B          C -------------------- ---------- 1          1          0 2.          ACOS(X) 返回X的反余弦值 SQL>SELECT ACOS(0) A,ACOS(0.5) B,ACOS(1) C FROM DUAL; A    

【shell】oracle安装脚本 - 未完成

自动安装oracle所需要的rpm包(需要访问外网): #! /bin/sh rpmpack=" binutils compat-libstdc++* elfutils-libelf elfutils-libelf-devel elfutils-libelf-devel-static gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers kernel-headers ksh libaio libaio-devel libgcc libg

Oracle——函数

CREATE FUNCTION annual_income(spNAme VARCHAR2) RETURN NUMBER IS yearSal number(7,2);BEGIN  SELECT (sal+NVL(comm,0))*12 INTO yearSal FROM emp WHERE ename=spNAme;  RETURN yearSal;END;/ SQL> var income number;SQL> call annual_income('SMITH') into:incom