oracle函数方法(虚拟表操作)

select initcap(‘smith‘) upp from dual; --首字母大写 initcap()
select concat(‘111‘,‘222‘)||‘333‘ 电话 from dual ; --连接字符串方法 concat(,)
select ‘111222‘||‘333‘  电话 from dual;
select instr(‘oracleeetraning‘,‘ra‘,1,1) instring from dual;select instr(‘oracleeetraning‘,‘ra‘,1,2) instring from dual;
--在一个字符串中搜索指定的字符,返回发现指定的字符的位置;
--INSTR(C1,C2,I,J)  C1被搜索的字符串  C2希望搜索的字符串  I搜索的开始位置,默认为1  J出现的位置,默认为1
select lower(‘AaBbCcDd‘)AaBbCcDd from dual;
select upper(‘AaBbCcDd‘) upper from dual;
select lpad(rpad(‘gao‘,10,‘*‘),17,‘*‘) ds from dual; --不够字符用*代替
select ltrim(rtrim(‘   gao qian jing   ‘,‘ ‘),‘ ‘) from dual;--LTRIM  删除左边出现的字符串  RTRIM  删除右边出现的字符串
select substr(‘13088888888‘,3,8) from dual;--取子字符串,从start开始,取count个
select replace(‘he love you‘,‘he‘,‘i‘) from dual;--string   希望被替换的字符或变量 s1被替换的字符串  s2要替换的字符串
-----------------------新鲜(不过不支持中文)---------------------
--返回一个与给定的字符串读音相同的字符串
create table table1(xm varchar(8));
insert into table1 values(‘weather‘);
insert into table1 values(‘wether‘);
insert into table1 values(‘gao‘);
select xm from table1 where soundex(xm)=soundex(‘weather‘);
------------------------------------------------
select abs(100),abs(-100) from dual;--返回绝对值
select ceil(3.1415927) from dual;--返回大于或等于给出数字的最小整数
select floor(2345.67) from dual;--对给定的数字取整数
select round(55.5),round(-55.4),trunc(55.5),trunc(-55.5) from dual;--按指定精度取值
select sign(123),sign(-100),sign(0) from dual;--取数字n的符号,大于0返回1,小于0返回-1,等于0返回0
select trunc(124.1666,-2) trunc1,trunc(124.16666,2) from dual;--按照指定的精度截取一个数 trunc截图
select to_char(add_months(to_date(‘199912‘,‘yyyymm‘),2),‘yyyymm‘) from dual;--增加或减去月份
select last_day(sysdate) from dual; --返回日期的最后一天
select sysdate from dual;           --返回系统日期的最后一天
select months_between(‘19-12月-1999‘,‘19-3月-1999‘) mon_between from dual;--给出date1-date2的月份
select months_between(to_date(‘2000.05.20‘,‘yyyy.mm.dd‘),to_date(‘2005.05.20‘,‘yyyy.mm.dd‘)) mon_betw from dual;
select to_char(sysdate,‘yyyy.mm.dd hh24:mi:ss‘) bj_time,to_char(new_time(sysdate,‘PDT‘,‘GMT‘),‘yyyy.mm.dd hh24:mi:ss‘) los_angles from dual;
select next_day(‘18-5月-2001‘,‘星期五‘) next_day from dual;--给出日期date和星期x之后计算下一个星期的日期
select to_char(sysdate,‘yyyy-mm-dd day‘) from dual;--获得系统当前日期 可获得星期
select to_char(trunc(sysdate,‘hh‘),‘yyyy.mm.dd hh24:mi:ss‘) hh,to_char(trunc(sysdate,‘mi‘),‘yyyy.mm.dd hh24:mi:ss‘) hhmm from dual;
--trunc(date,fmt)按照给出的要求将日期截断,如果fmt=‘mi‘表示保留分,截断秒
select to_number(‘19909‘) year from dual;--将给出的字符转换为数字
select userenv(‘isdba‘) from dual;
select userenv(‘sessionid‘) from dual;--返回会话标志
select userenv(‘language‘) from dual;
select userenv(‘lang‘) from dual;
select userenv(‘terminal‘) from dual;--返回用户的终端或机器的标志
--AVG(DISTINCT|ALL)
--all表示对所有的值求平均值,distinct只对不同的值求平均值 --select avg(distinct sal) from gao.table3; --select avg(all sal) from gao.table3;

时间: 2024-10-11 05:37:47

oracle函数方法(虚拟表操作)的相关文章

oracle菜鸟学习之 表操作

首发:http://www.arppinging.com/wordpress/?p=96 oracle菜鸟学习之 表操作 1.创建表 在oracle中,创建表使用create table来实现 SQL> create table student(sno number(6),sname varchar2(12),address varchar2(20)); Table created. SQL> desc student; Name Null? Type --------------------

Oracle中的虚拟表:dual

dual是Oracle中的一个虚拟表,无论什么时候,它只有一条记录:X 那这个表有什么卵用呢?还是有点卵用的:它可以拿来凑数,以满足语法要求.具体看几个例子就了然了: 1.查当前登陆用户名 2.当计算器使 3.获取一个随机数 4.拼接字符串 5.获取当前日期 格式不太友好,还可以调用个系统函数调整一下格式: 简单来说,dual就是个接盘侠,当你要查的东西不在任何表里,但是不写个表名Oracle又会报语法错误,这个时候把它安在dual这个接盘侠身上就行了. dual就是这么乐于助人~ 原文地址:h

MySql类似Oracle的dual虚拟表

在mysql里也存在和oracle里类似的dual虚拟表:官方声明纯粹是为了满足select ... from...这一习惯问题,mysql会忽略对该表的引用. 你可千万注意了: select * from dual; mysql会出错——1096:没有使用到表:而oracle 会返回列:“du”,其值为“X”——行为和只有一行记录的普通表是一样的! select  express [from dual];  mysql总是作为返回该表达式值的普通select语句执行,返回一行记录的结果集,fr

Oracle 函数 “判断数据表中不存在的数据,才允许通过”

1 create or replace function mca_detail_material_val(p_material_code VARCHAR2, --实参 2 p_material_name VARCHAR2, 3 p_mca_no VARCHAR2 4 ) 5 RETURN varchar2 AS 6 7 --物料编码/名称的验证,数据表(MATERIAL)中 不存在 该物料编码/名称,允许通过,填其他值都不允许通过 8 9 v_count1 NUMBER; -- 形参 10 v_

使用CI操作oracle 10g的单表增删改查

<?php if (!defined('BASEPATH'))    exit('No direct script access allowed'); class UseOra extends CI_Controller{ public function index()    {        echo '欢迎使用测试CI使用Oracle 10g 的功能,您可以在地址栏中使用如下的函数参数:<br>';        echo '=============================

再说“使用CI操作oracle 10g的单表增删改查”

--Control中的UseOra.php <?php if (!defined('BASEPATH'))    exit('No direct script access allowed'); class UseOra extends CI_Controller{ public function index()    {        echo '欢迎使用测试CI使用Oracle 10g 的功能,您可以在地址栏中使用如下的函数参数:<br>';        echo '=======

php操作oracle的方法类集全

在网上开始找php中操作oracle的方法类~ 果然找到一个用php+oracle制作email表以及插入查询的教程,赶忙点开来看,从头到尾仔细的看了一遍,还没开始操作,便觉得收获很大了.地址在此:http://www.alixixi.com/program/a/2008050731615.shtml#replay. http://blog.163.com/[email protected]/blog/static/27712393201131815035122/        (博客校园) 摘

Oracle组函数、多表查询、集合运算、数据库对象(序列、视图、约束、索引、同义词)等

count组函数:(过滤掉空的字段) select count(address),count(*) from b_user max() avg() min(),sum() select sum(age),max(age),min(age),avg(nvl(age,0)) from b_user 1       260     70      10      37.1428571428571 group by:如果前面定义了该字段名  则groupby必须也写上该字段 select name,pw

Oracle创表操作记录

Oracle表操作 --主键,复合主键 create table example (id number primary key, name varchar2(20)); create table example1 (id number, name varchar2(20),primary key(id)); create table example2 (id number, name varchar2(20)); ALTER TABLE example2 ADD PRIMARY KEY (ID)