1.
decode用法:
decode (expression, search_1, result_1)
decode (expression, search_1, result_1, search_2, result_2)
decode (expression, search_1, result_1, search_2, result_2, ...., search_n, result_n)
decode (expression, search_1, result_1, default)
decode (expression, search_1, result_1, search_2, result_2, default)
decode (expression, search_1, result_1, search_2, result_2, ...., search_n, result_n, default)
decode函数比较表达式和搜索字,如果匹配,返回结果;如果不匹配,返回default值;如果未定义default值,则返回空值。
2.
连接查询:
FORM Employee, Department
WHERE Employee.emp_deptid(+) = Department.deptid此SQL文使用了右连接,即“(+)”所在位置的另一侧为连接的方向,右连接说明等号右侧的所有记录均会被显示,无论其在左侧是否得到匹配
3.
oracle 分页:
SELECT * FROM
(
SELECT A.*, ROWNUM RN
FROM (SELECT * FROM TABLE_NAME) A
WHERE ROWNUM <= 40
)
WHERE RN >= 21
其中最内层的查询SELECT * FROM TABLE_NAME表示不进行翻页的原始查询语句。ROWNUM <= 40和RN >= 21控制分页查询的每页的范围。
4.
合并列值:
a:自定义函数实现
5.
树实现:
a:通过子节点向根节点追朔.
select * from dept start with deptid=76 connect by prior paredeptid=deptid
b:通过根节点遍历子节点
select * from dept start with paredeptid=0 connect by prior deptid=paredeptid
c:可通过level 关键字查询所在层次
select a.*,level from dept a start with paredeptid=0 connect by prior deptid=paredeptid
start with 后面所跟的就是就是递归的种子,也就是递归开始的地方;
connect by prior后面的字段顺序是有讲究的;
若prior缺省:则只能查询到符合条件的起始行,并不进行递归查询;
还有 可以使用sys_connect_by_path函数,按树的层次显示
6.
创建表空间:
create tablespace YWGTOA
logging
-- DATAFILE 用于指定数据文件的具体位置和大小 datafile 'D:\soft\oracle\product\10.2.0\oradata\orcl\ywgtoa.dbf'
size 100M
-- 是否自动增长
autoextend on
--
next 32m maxsize 2048m
extent management local;
7. 数据导出
如果是导出本机的Oracle数据库:
exp pcisv62/11@ORCL file="d:\pcisv62081226.dmp" full=y
(ORCL为本地数据库监听)
如果是导出服务器端的Oracle数据:
exp pcisv62/11@tnsname file="d:\pcisv62081226.dmp" full=y
(tnsname为COREV6_DBSERVER,SID为COREV6,主机为DBSERVER。)
注意:必须是 DBA 才能执行完整数据库或表空间导出操作。
8. instr
INSTR方法的格式为
INSTR(源字符串, 目标字符串, 起始位置, 匹配序号)
例如:INSTR('CORPORATE FLOOR','OR', 3, 2)中,源字符串为'CORPORATE FLOOR', 目标字符串为'OR',起始位置为3,取第2个匹配项的位置。
默认查找顺序为从左到右。当起始位置为负数的时候,从右边开始查找。
所以SELECT INSTR('CORPORATE FLOOR', 'OR', -1, 1) "Instring" FROM DUAL的显示结果是
Instring
——————
14
0 0 0