Oracle 开发常见问题
1.数学函数
①绝对值
l S:select abs(-1) value
l O:select abs(-1) value from dual
②取整(大)
l S:select ceiling(-001) value
l O:select ceil(-001) value from dual
③取整(小)
l S:select floor(-001) value
l O:select floor(-001) value from dual
④取整(截取)
l S:select cast(-002 as int) value
l O:select trunc(-002) value from dual
⑤四舍五入
l S:select round(23456,4) value 23460
l O:select round(23456,4) value from dual 2346
⑥e为底的幂
l S:select Exp(1) value l O:select Exp(1) value from dual
⑦取e为底的对数
l S:select log(7182818284590451) value
l O:select ln(7182818284590451) value from dual;
⑧取10为底对数
l S:select log10(10) value
l O:select log(10,10) value from dual;
⑨取平方
l S:select SQUARE(4) value
l O:select power(4,2) value from dual
⑩取平方根 l S:select SQRT(4) value
l O:select SQRT(4) value from dual
求任意数为底的幂
l S:select power(3,4) value
l O:select power(3,4) value from dual
取随机数
l S:select rand() value
l O:select sys.dbms_random.value(0,1) value from dual;
取符号
l S:select sign(-8) value -1
l O:select sign(-8) value from dual -1
2.数值比较
①求集合最大值 l S:select max(value) value from
(select 1 value union
select -2 value union
select 4 value union
&n
相关文档:
第一部分、SQL&PL/SQL
[Q]怎么样查询特殊字符,如通配符%与_
[A]select * from table where name like 'A_%' escape ''
[Q]如何插入单引号到数据库表中
[A]可以用ASCII码处理,其它特殊字符如&也一样,如
insert into t values('i'||chr(39)||'m'); -- chr(39)代表字符'
或者用两个单引号表示一个
or ......
2.根据Oracle 数据库scott 模式下的emp 表和dept 表,完成下列操作:
(1) 查询20号部门的所有员工信息;
(2) 查询所有工种为CLERK 的员工的员工号、员工名和部门号;
(3) 查询奖金COMM 高于工资SAL 的员工信息;
  ......
1. ASCII
返回与指定的字符对应的十进制数;
SQL> select ascii(A) A,ascii(a) a,ascii(0) zero,ascii( ) space from dual;
A A ZERO SPACE
--------- --------- --------- ---------
65 97 48 32
2. CHR
给出整数,返回对应的字符;
SQL> select chr(54740) zhao,chr(65) chr65 from ......
select * from sys.smon_scn_time;
--scn 与时间的对应关系
每隔5分钟,系统产生一次系统时间标记与scn的匹配并存入sys.smon_scn_time表。
select * from student as of scn 592258
就可以看到在这个检查点的表的历史情况。
然后我们恢复到这个检查点
insert into student select * from student a ......
ROLLUP,是GROUP BY子句的一种扩展,可以为每个分组返回小计记录以及为所有分组返回总计记录。
CUBE,也是GROUP BY子句的一种扩展,可以返回每一个列组合的小计记录,同时在末尾加上总计记录。
在文章的最后附上了相关表和记录创建的脚本。
1、向ROLLUP传递一列
SQL> select division_id,sum(salary)
2  ......