1 / 43

大型主机平台系统应用开发基础 - PowerPoint PPT Presentation

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.

PowerPoint Slideshow about '大型主机平台系统应用开发基础' - channary-khin

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

大型主机平台系统应用开发基础

• 7.1排序的概念和步骤
• 7.2 数据的排序
• 7.3 数据的合并

• 排序与非排序文件处理
• 排序概述

• 在数据处理中，经常需要对一批数据按按某种方式进行排序，从而为进一步分析数据提供有力的参考，排序是数据处理中最重要和最基本的方法之一
• COBOL本身提供排序功能，无需额外设计
• 在对数据排序时，需指定排序键 (sort key)和排序方法
• 排序键是指记录中需要按此列进行排序的字段，可以分为主键(major/primary key)和次键(minor/secondary key) ，可以同时指定多个排序键
• 排序方法分为升序(ascending)和降序(descending)，默认按EBCDIC编码顺序，如: ‘cap’ < ‘cat’， ‘C’ < ‘COBOL’， ‘1’> ‘A’

NAME YEAR MAJOR

==================== ============= ========================

Smith 1 Liberal arts

Jones 4 Engineering

Howe 2 Liberal arts

Frank 1 Engineering

Epstein 2 Engineering

Grauer 3 Liberal arts

Crawford 2 Engineering

NAME YEAR MAJOR

==================== ============= ========================

Crawford 2 Engineering

Epstein 2 Engineering

Frank 1 Engineering

Grauer 3 Liberal arts

Howe 2 Liberal arts

Jones 4 Engineering

Smith 1 Liberal arts

NAMEYEAR MAJOR

==================== ============= ========================

Jones 4 Engineering

Grauer 3 Liberal arts

Crawford 2 Engineering

Epstein 2 Engineering

Howe 2 Liberal arts

Frank 1 Engineering

Smith 1 Liberal arts

NAMEYEARMAJOR

==================== ============= ========================

Jones 4 Engineering

Crawford 2 Engineering

Epstein 2 Engineering

Frank 1 Engineering

Grauer 3 Liberal arts

Howe 2 Liberal arts

Smith 1 Liberal arts

• 从输入文件中读取记录到排序工作文件
• 使用排序工作文件开始排序
• 将排序结果写入输出文件

• SORT语句
• 其它语句
SORT语句

SORT SORT-WORK-FILE

ON ASCENDING KEY数据项1 数据项2 …

ON DESCENDING KEY数据项3 数据项4 …

SORT STUDENT-FILE

ASCENDING MAJOR

DESCENDING YEAR

ASCENDING NAME

SORT STUDENT-FILE

ASCENDING MAJOR

NAME

DESCENDING YEAR

SORT语句
• 格式1：

SORT SORT-WORK-FILE

ASCENDING 数据项1 数据项2 …

DESCENDING 数据项3 数据项4 …

USING SORT-IN-FILE

GIVING SORT-OUT-FILE

• 格式2：

SORT SORT-WORKFILE

ASCENDING 数据项1 数据项2 …

DESCENDING 数据项3 数据项4 …

INPUT PROCEDURE过程名1 [ THRU 过程名2 ]

OUTPUT PROCEDURE 过程名3 [ THRU 过程名4 ]

SORT语句
• USING自动对输入文件进行I/O操作；

INPUT PROCEDURE 需要程序员编码进行I/O操作

• USING只能对输入文件的所有记录进行排序；

INPUT PROCEDURE 可以对输入文件的记录进行过滤后再排序

• USING 只能对输入文件中已有列进行排序;

INPUT PROCEDURE 可以对计算列(calculated field)排序

• GIVING 将排序结果保存到永久文件；

OUTPUT PROCEDURE 只将结果保存在临时文件

• 在环境部用SELECT语句定义输入和输出文件，在数据部用FD语句进行描述
• 在环境部用SELECT语句定义排序工作文件，在数据部用SD语句(sort descriptor)进行描述
• 注意：

• RELEASE语句类似于WRITE，将数据写入排序工作文件缓冲区，格式如下：

RELEASE sw-file-record FROM identifier

• RELEASE语句只能用于INPUT PROCEDURE，且至少使用一次

RETURN sw-file INTO identifier

• RETURN语句只能用于OUTPUT PROCEDURE，且至少使用一次
MERGE语句
• 合并是排序的一种特殊形式，将多个格式相同且按相同排序方式排序的文件组合成一个新的文件
• 格式：

MERGE merge-work-file

ON ASCENDING KEY sort-key1 sort-key2 …

ON DESCENDING KEY sort-key3 sort-key4 …

USING sorted-file1 sorted-file2 …

GIVING merged-file | OUTPUT PROCEDURE

MERGE语句
• 排序键的使用同SORT命令
• sorted-file*的文件用FD描述，merge-work-file

• 不能使用INPUT PROCEDURE语句

Thank You

www.themegallery.com