扩展

阅读(2) 标签: 扩展, 拼接列, 集合,

语法:

[<列表>] [拼接列 {<原列名> [命名 <新列名>]}]

参数:列表

用于生成集合的多种形式中的一种,包括:常数集合(包括标识)、自然数N、可生成集合的计算式、上下文中的其他表(标识)。必要参数;类型是多种形式;参数名必须省略。

例子:

第一种形式:参数列表是常数集合时,假设集合成员数为M,则焦点表的每条记录都扩展出M条,集合成员依次填入焦点列。

学生表(焦点表)原有2条记录,焦点列是科目,数据如下:

学生姓名  班级  科目

张三  5年二班 

李四  5年二班

要求:现在要用有序集合["物理","数学","英语"]将每条记录扩展成3条。

期望结果:

学生姓名  班级  科目

张三  5年二班  物理

张三  5年二班  数学

张三  5年二班  英语

李四  5年二班  物理

李四  5年二班  数学

李四  5年二班  英语

NLC:扩展 ["物理","数学","英语"] 

 

第二种形式:参数列表是整数N时,集合是1NN个自然数,焦点表的每条记录都扩展出N条,用集合成员依次填入焦点列。

学生表原有2条记录,焦点列是学期,数据如下:

学生姓名  班级  学期

张三  5年二班 

李四  5年二班

要求:现在要用自然数2将每条记录扩展成2条。

期望结果:

学生姓名  班级  学期

张三  5年二班  1

张三  5年二班  2

李四  5年二班  1

李四  5年二班  2

NLC:扩展 2

 

第三种形式:参数列表是可生成集合的表达式时,假设集合成员数为M,则焦点表的每条记录都扩展出M条,集合成员依次填入焦点列。注意,这个表达式是受限的,生成的集合相对固定,不能随焦点表的当前记录而变。

学生表(焦点表)原有2条记录,焦点列是科目,数据如下:

学生姓名  班级  科目

张三  5年二班 

李四  5年二班

要求:现在要用表达式(条件(parameter1>2 ["化学","语言"]; 否则 ["物理","数学","英语"]))将每条记录扩展成多条,假设变量parameter1=3

期望结果:

学生姓名  班级  科目

张三  5年二班  化学

张三  5年二班  语言

李四  5年二班  化学

李四  5年二班  语言

NLC:扩展 (条件(parameter1>2 ["化学","语言"]; 否则 ["物理","数学","英语"]))

 

第四种形式:参数列表是上下文中的其他表时,如果该表有主键,则集合是该表的主键的所有列值,如果该表没有主键,则集合是该表的第1列的所有列值。假设集合的长度为M,则焦点表的每条记录都扩展出M条,用集合成员依次填入焦点列。

上下文中有礼品表,结构是[礼品名称,品牌,档次],没有主键,共N条记录。焦点表是客户表,焦点列是计划礼物。现在要求把礼品表的礼品名称依次写入客户表的计划礼物列,每条记录扩展成N条。

NLC:扩展  礼物表

 

参数:拼接列

当参数列表是其他表时,可以用本参数将该表的其他列(除了生成集合的列之外的列)拼到焦点表的后面。非必要参数;复合参数;参数名不能省略。本参数是复合参数,由一对或多对子参数组成,即子参数原列名和子参数命名,每一对参数代表其他表中的一个列。

其中,子参数原列名是其他表中的一个列名(包括序号列#),将拼到到焦点表上。必要参数;类型是列标识;参数名必须省略。

其中,子参数命名是将原列名拼接到焦点表之后要改成的新名字。非必要参数,默认保持原名;类型是列标识;参数名不能省略。

例子:

把礼品表的礼品名称依次写入客户表(焦点表)的计划礼物列(焦点列),并把品牌和档次字段拼接到客户表,每条记录扩展成N条,其中,把字段档次改名为级别。

NLC:扩展  礼物表; 拼接列 品牌, 档次 命名 级别