语法:
[<列表>] [拼接列 {<原列名> [命名 <新列名>]}]
参数:列表
用于生成集合的多种形式中的一种,包括:常数集合(包括标识)、自然数N、可生成集合的计算式、上下文中的其他表(标识)。必要参数;类型是多种形式;参数名必须省略。
例子:
第一种形式:参数列表是常数集合时,假设集合成员数为M,则焦点表的每条记录都扩展出M条,集合成员依次填入焦点列。
学生表(焦点表)原有2条记录,焦点列是科目,数据如下:
学生姓名 班级 科目
张三 5年二班
李四 5年二班
要求:现在要用有序集合["物理","数学","英语"]将每条记录扩展成3条。
期望结果:
学生姓名 班级 科目
张三 5年二班 物理
张三 5年二班 数学
张三 5年二班 英语
李四 5年二班 物理
李四 5年二班 数学
李四 5年二班 英语
NLC:扩展 ["物理","数学","英语"]
第二种形式:参数列表是整数N时,集合是1至N共N个自然数,焦点表的每条记录都扩展出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:扩展 礼物表; 拼接列 品牌, 档次 命名 级别