SQL语句PART7
Merge statement
function benefits: 1) provides the ability to conditionally update, insert or delete data into a database table. 2) performs an update if the row exists, and an insert if it is a new row. --> 1) avoids seperate updates, 2) increase performance and ease of use. 3) is useful in data warehousing applications.
syntax:
MERGE INTO table_name table_alias
USING (table|view|sub_query) alias
ON (join condition)
WHEN MATCHED THEN
UPDATE SET
col1 = col1_val,
col2 = col2_val
WHEN NOT MATCHED THEN
INSERT (column_list)
VALUES (column_values);
e.g.: table: temp_t1:
results:
1 1 收文 SHOUWEN
2 1 发文 FAWEN
3 1 交办 JIAOBAN
4 2 值班报告 REPORT
5 3 督察督办 SUPERVISAL
6 2 值班快报 DAILYREPORT
7 2 我的事情 NOTIFY
8 4 提案 RESOLUTION
9 4 建议 SUGGESTION
e.g.: table: temp_t2:
results:
1 1 收文 SHOUWEN
2 1 发文 FAWEN
3 1 交办 JIAOBAN
4 2 值班报告 REPORT
5 3 督察督办  
相关文档:
1. select replace(CA_SPELL,' ','') from hy_city_area 去除列中的所有空格
2. LTRIM() 函数把字符串头部的空格去掉
3. RTRIM() 函数把字符串尾部的空格去掉
4. select LOWER(replace(CA_SPELL,' ','')) f ......
问题:假设有张学生成绩表(tb)如下:
姓名 课程 分数
张三 语文 74
张三 数学 83
张三 物理 93
李四 语文 74
李四 数学 84
李四 物理 94
想变成(得到如下结果):
姓名 语文 数学 物理
---- ---- --- ......
包由包规范和包体两部分组成。
1、包规范(Package Specification)
包规范,也叫做包头,包含了有关包的内容的信息。但是,它不包含任何过程的代码。
创建包头的语法一般如下
CREATE [OR REPLACE] PACKAGE package_name {IS | AS}
Procedure_name | function_name | variable_declaration | type_def ......
GRANT
Name
GRANT -- 定义访问权限
Synopsis GRANT { { SELECT | INSERT | UPDATE | DELETE | RULE | REFERENCES | TRIGGER }
[,...] | ALL [ PRIVILEGES ] }
ON [ TABLE ] tablename [, ...]
TO { username | GROUP groupname | PUBLIC } [, ...] [ WI ......