可以规定多在100个比较。每次比较都可以使用需要的多行,最多可使用100行。 ‘选择记录’显示为一次提供六行让你输入比较。如果需要更多行,按PAGE DOWN键来获得更多的空输入行。如果光标定位在任何输入行(无论是否在此进行比较),都可用翻页键来观查所有输入的比较。
2.5.2.1 比较字段
要做测试,字段必须是下列之一: 字段在你所选定的文件中。可以是任何字段,包括没有选择包括在输出中的字段。 为查询定义的结果字段。 当规定一个字段做比较,如果此字段在列表中的多个文件中,必须在字段名前输入文件标识符且用句点分开。例如:如果字段ACCTNUMBER在两个选定的文件中都有,它们的标识为T01、T02,则必须指定T01.ACCTNUMBER或T02.ACCTNUMBER。如果不包含文件标识,查询就不知道从哪个文件得到比较测试所需要的字段。可以用F18键来看所选择的文件目录及与每个文件相关的文件标识。
2.5.2.2 比较值 可比较的值可以是:
另一个字段 一个数值常数 一个字符常数(SBCS或DBCS) 一个日期常数 一个时间常数 一个时间标记常数 比较的字段和值必须是兼容的数据类型。 下面是记录选择测试有效的比较: SBCS字符字段与: SBCS字符 DBCS-either DBCS-open DBCS-either字段与: SBCS字符 DBCS-either DBCS-open DBCS-only DBCS-open字段与:
SBCS字符 DBCS-either DBCS-open DBCS-only
DBCS-only字段与:
DBCS-either DBCS-open DBCS-only DBCS-图形字段与:
DBCS-图形
UCS2—图形字段与:
UCS2-图形
数值字段与数值字段 日期字段与:
SBCS字符 日期
DBCS-either DBCS-open
时间字段与: SBCS字符 时间
DBCS-either DBCS-open
时间标记字段与: SBCS字符 时间标记
DBCS-either DBCS-open
任何字段都可以用IS或ISNOT同NULL键字进行比较,来确定此字段是否为空。
注:当一个SBCS,DBCS-either,DBCS-open字符字段与日期、时间或时间标记字段比较时,使用每个值都能被SAA格式的日期、时间或时间标记所认识的字符字段。如果字符字段包含正确的日期、时间、时间标记表达式,而不是一个SAA格式,会得到非期望的结果。当运行一个有非SAA格式的日期、时间、时间标记的字符字段的查询,且查询没有设置非SAA字母日期值,要用CHGJOB命令来确定认工作日期格式及分隔符,来与字符字段值的格式及分隔符匹配。
一般来讲,每次比较只规定一个值。例外情况可看2.5.2.3。
2.5.2.2.1 字段作为值
如果用字段作为值(即显示中的VALUE列),字段可以是显示底部列出的任意字段。 如果只想在客户主文件中要预计平衡(BALDUE)大于信用量限制(LRLIMIT)的记录,可以用一个字段作为一个值,在此例中可以比较这两个字段:BALDUE和CRLIMIT,比较的字段并不一定要有相同的长度,数值型字段也不一定有相同的小数位。
2.5.2.2.2 字符常数作为值
字符常数是括在单引号内的字符(例如‘XXX’),单引号是非常重要的,因为查询假定任何没有用单引号括起字符都是一个字段名。在DBCS字符常量里,转出和转入字符必须包住放在单引号内的DBCS值,DBCS-图形字符常量必须先写一个大写或小写的G。 例如:只想要Jan Alison的记录,用NAME字段同‘Jan Alison’比较。注意,如果不用单引号,查询会告诉你:只有一个值容许被测试。
可以发现常数字符可以与测试字段中的任何字母、数值或特殊字符(比如*、?、#、$、@)的任意组合进行比较,字符常量必须用单引号括起,即使它包括的是数值也是一样,当用LIKE测试时,下划线(_)和百分号(%)都有一定的意义。 如果规定的字符常数有单引号,那么输入时要用双引号,这样查询才会认为常量没有结
束。例如要查询街道的地址Granger’s Cirde,要输入‘Granger”s Cirde’,查询把双引号认为是单引号放在常量内。
2.5.2.2.3 数值常量作为值
数值常量不用单引号括起,一个数值常量可以是1至31的数字。
在数值常量中不要用货币符号和千分号。 注:如果在用逗号(,)做小数点的国家之间传送查询,在SUBSTR函数的位移和长度间的逗号后要加空格,在VALUE函数的数字值之间也要加空格。按F17键能看到查询中使用的小数点是什么符号。
2.5.2.2.4 日期、时间、时间标记常量作为值
日期、时间、时间标记常量与用在‘定义结果字段’显示中的常量一样,请看2.3.1.6的内容。按F17键可以看到AS/400所允许的日期、时间格式和分隔符。
2.5.2.2.5 空值
对于所有记录选择的数据类型来说,NULL是一个有效值,IS和ISNOT是对键字NULL有效的测试。
2.5.2.3 比较测试
在比较中可以规定下面这些测试: 测试 说明 EQ 等于,用此来测试字段的内容与值是否相等 NE 不等,用此来测试字段的内容和值是否不等 GT 大于,用此来测试字段的内容是否大于值 LT 小于,用此来测试字段的内容是否小于值 GE 大于等于,用此来测试字段的内容是否大于等于值 LE 小于等于,用此来测试字段的内容是否小于等于值 RANGE 范围,用此来测试字段的内容是否在规定的值范围内 LIST 列表,用此来测试字段的内容是否等于列表中的一个值 NLIST 非列表,用此来测试字段的内容是否不等于列表中的任一值 LIKE 相似,用此来测试字段的内容是否与值类似 NLIKE 不相似,用此来测试字段的内容是否和值不相似 IS 是,用此来测试字段是否为空,有效值仅为NULL和null ISNOT 不是,用此来测试字段的内容是否为不空
字符字段和常量所有的测试都是字符到字符的比较,除了LIKE、NLIKE、IS、ISNOT外。
如果比较两个字段或一个字段和一个常量,它们的长度不同,查询将对较短的字段结尾加上足够的空格,使两字段有相同的长度。 整理顺序决定大于或者小于条件,(对于GT,GE,LT,LE和RANGE比较),详细内容看第九章。
2.5.2.3.1 日期、时间和时间标记比较 一个日期、时间或者时间标记值可以同相同类型的另一个值进行比较,或与同类型的字符表达式进行比较,所有都按时间标记从0001年1月1日起,离此点越远,值越大。
时间值和时间值的字符表达式比较总包括秒,如果字符表达式无秒,假定是零秒,有
24:00:00的时间或时间标记值不同于00:00:00。
2.5.2.3.2 测试等于和不等于
利用EQ和NE来测试字段的内容是否等于或不等于所规定的值。 如果测试EQ,只有在字段包含的数据严格与规定的值相同时才选择包含此字段的记录。例如比较是: INTRAT EQ 18
只有在INTRAT内包含18时记录才被选择,INTRAT可以是18、18.00、00018等。 如果测试NE,只有在字段中包含的数据与指定值不同时才选择此记录。例如,想选取字段名不包括SMITH值的记录,可以指定: NAME NE‘SMITH’
如果NAME字段的定义多于5个字符,对于查询来说并没有太大的麻烦。查询检查所有不严格匹配SMITH的记录,SMITHSON、NESMITH,smith等名称都会做为不等于的条件被选取。
2.5.2.3.3 测试空和非空
用IS和ISNOT测试来确定字段的内容为空或非空,任何字段都可用IS或ISNOT来测试空值,下面是一些例子: NAME IS NULL
如果NAME字段为一个空值则选取此记录。 NAME ISNOT NULL
如果NAME字段不为空,则选取此记录。
2.5.2.3.4 测试大于、小于和范围
利用大于和小于测试来确定字段的内容是否大于或大于等于、小于或小于等于或等于指定的值,可用范围测试来确定字段的内容是否位在指定的值范围内,用此可测试数值数据,也可以测试字符数据。 下面是一些例子: NAME GT ‘SIMTH’ INTRAT GE 18 BALUDE LT CRLINIT BALDUE LE CRLIMIT
当测试范围时,字段的内容必须在两个值范围之间记录才被选取。在‘选择记录’显示中,在Value列必须指定两个值,并且必须用空格将两值分开,如果第一个值大于第二个值,记录将不会被选取。
例如,只想选取从二月份到八月份的记录,字段MONTH是数值型字段,它包含1代表一月份,2代表二月份,3代表三月份等等。在‘选择记录’显示中,可象如下显示中规定:
* * * Select Records * * * * Type comparisons, press Enter. Specify OR to start each new group. * * Tests: EQ, NE, LE, GE, LT, GT, RANGE, LIST, LIKE, IS, ISNOT... *
* * * AND/OR Field Test Value (Field, Number, or 'Characters') * * MONTH_________ RANGE 2 8___________________________ * * ____ ______________ _____ ______________________________ * * ____ ______________ _____ ______________________________ *
要用GT、GE、LT、LE和RANGE测试SBCS字符字段和值,你应该知道整理顺序,它决定什么字符大于或小于其它字符。如果没有选择其它的,用十六进制整理顺序。它规定: 大部分特殊字符小于字母 小写字母小于大写字母 字母小于数字
例如,字符A、8、&和b从低到高排列为 & b A 8
详细内容请看第九章。
2.5.2.3.5 测试列表中的值
用LIST、NLIST来确定字段的内容是否等于或不等于在‘选择记录’显示中列出的任一值。
当比较一个字段和列表时,如果字段的内容严格符合规定值中的一个,记录被选取。在列表中可规定以下值:
如果与数值字段比较,一定是数值常量。
如果与SBCS字符字段比较,一定是SBCS字符常量。
如果与bracketed-DBCS字段进行比较,一定是SBCS、DBCS-only或者DBCS-open字符常量。
如果与DBCS图形字符字段进行比较,一定是DBCS图形字符常量。 一定用空格分开。 不能是字段名。
如果同日期字段进行比较一定是日期常量。如果目录包含日期的正确表达式,而不是SAA格式,将得到预想不到的结果。要避免发生这种结果,列表格式必须用SAA格式。 如果与时间字段进行比较,一定是时间常量。如果列表包含时间的正确的表达式但不是SAA格式,将得到预想不到的结果。要避免发生这种结果,列表必须是SAA格式。
如果与时间标记字段进行比较,一定是时间标记常量。列表中必须至少包含两个值,但不需要特殊的顺序,必须用单引号括起每一个字符型常量,对于那些自身有单引号的字符型常量要用双引号。
如果列表中所有的值一行中放不下,可在值的下一行上继续。这时,要在下一行的值前放一空格。在把DBCS值放在二行时,要在第一行的最后一位写转入符,在第二行的第一位写转出符。
例1:如果仅选择在ITEMNO字段有04567,00976和85432值的记录,可规定:
* * * Select Records * * * * Type comparisons, press Enter. Specify OR to start each new group. * * Tests: EQ, NE, LE, GE, LT, GT, RANGE, LIST, NLIST, LIKE, NLIKE, IS,ISNOT * * * * AND/OR Field Test Value (Field, Number, or 'Characters') * * ITEMNO LIST 04567 00976 85432 * * ____ ______________ _____ ______________________________ * * ____ ______________ _____ ______________________________ * * *
例2:下面测试LASTNAME字段有不同的姓:
* * * Select Records * * * * Type comparisons, press Enter. Specify OR to start each new group. * * Tests: EQ, NE, LE, GE, LT, GT, RANGE, LIST, LIKE, IS, ISNOT... * * * * AND/OR Field Test Value (Field, Number, or 'Characters') * * LASTNAME LIST 'Staples' 'Thorson' 'Smith' 'J * * ____ ______________ _____ ones' 'Alison' 'O''Grady' * * ____ ______________ _____ ______________________________ * * *
2.5.2.3.6 测试相似的值(LIKE和NLIKE)
要知道一个字段的结构是否类似于所规定的结构时,可以用LIKE来测试,而用NLIKE来测试一个字段的结构是否与规定的结构不相似。可以用LIKE比较SBCS和DBCS字符字段,但是,对任何其它字段类型规定LIKE或NLIKE比较会产生错误信息。
当使用LIKE测试,如果字段某部分与规定的比较值有相同的字符,则选取此记录。例如:想选择所有由A开头的有最后名字的记录,可用LIKE来测试。
必须用单引号把测试模式括起来。如果测试模式内有单引号的,要用双引号。如果测试模式由两个单引号单独组成,被看作是一个空的字符串。 可以使用特殊字符来表示字段中不检查的部分:
一个下划线意味着跳过这个位置上的一个字符不测试它,在字段中每个下划线代替一个字符。
一个百分号意味着跳过必要的字符直到字段结尾或下一个规定的字符,每一个%代替零到更多个字符。
一个测试模式不能比实际字段长,但可以和它一样长。查询在检查模式长度时不会把%当成一个字符,把常量内的双引号做为一个字符。
例如:如果测试LASTNAME字段的第一位是不是A,且假如: 字段长度为1 可以规定‘A’ 字段长度为3 可以规定‘A_ _’ 字段长度至少为1 可能规定‘A%’
可如下显示来输入:
* * * Select Records * * * * Type comparisons, press Enter. Specify OR to start each new group. * * Tests: EQ, NE, LE, GE, LT, GT, RANGE, LIST, LIKE, IS, ISNOT... * * * * AND/OR Field Test Value (Field, Number, or 'Characters') * * LASTNAME LIKE 'A%' * * ____ ______________ _____ ______________________________ * * ____ ______________ _____ ______________________________ * * *
如果测试字段的最后一位是否为A,可以规定‘%A’,但是注意,如果一个8字符字段包括‘ANNA ’,相似测试会失败,因为最后位置是一个空格。
如果要测试E的后面第二位是否为A,并且字段的长度至少为3,可以规定: ‘%E_A%’
需注意如果包括以下内容的8字符字段,LIKE测试会为真:
'ANNE A. ' 'EVAN E. ' 'ANNE EVA'
注:LIKE,NLIKE测试不能用于日期、时间或者时间标记字段,只有字符常量允许用LIKE、NLIKE。为了防止发生这类情况,生成一个结果字段并且用CHAR函数用在日期、时间、时间标记字段,然后在‘选择记录’显示中使用结果字段。
2.5.2.3.7 测试DBCS相似和不相似
DBCS相似不相似可以用在‘选择记录’显示中的Value列来选择记录。下面的LIKE模式类型可用于DBCS字段:标准SCBS字符常量,DBCS-only字符常量,DBCS-open字符常量,DBCS图形字符常量。 非DBCS字符LIKE,NLIKE模式:这个模式包含非DBCS数据,可以用来测试DBCS-either和DBCS-open字段,用一个百分号来跳过一些字符或空字符,用一个下划线来代表一个SBCS字符。尽管LIKE模式只包括SBCS字符,但它可以测试包括DBCS和SBCS数据的DBCS-open字段,因为一个%标记可以跳过这两种数据。 DBCS-only LIKE,NLIKE模式:这个模式只包括双字节字符,能用于任何bracketed-DBCS字段,但不能用于DBCS-图形字段。用一个转出字符开始,用一个转入字符结束,用DBCS百分符号(%%)来跳过多个字符或空字符,用DBCS下划线(_ _)来表示接受这些位上的双字节字符。虽然ULIKE模式仅包括双字节字符,它可以测试包括双字节字符和字母数字数据
的DBCS-open字段,这是因为%%标记可以跳过这两种数据。 DBCS-open LIKE,NLIKE模式:这个模式包括DBCS和SBCS字符数据,只能用于DBCS-open字段。 百分号可以跳过任何数量的SBCS字符或双字节字符或者空字符,它忽略了转入
和转出字符。
DBCS百分号(%%)和标准的百分号(%)工作的方式是相同的。
下划线代表一个SBCS字符,它不代表一个双字节字符、转出和转入字符。 DBCS下划线(_ _)代表一个双字节字符,它不能用来代表字母数字、转出、转
入字符。
DBCS-图形LIKE,NLIKE模式:这个模式只包括双字节字符,只用于DBCS-图形字段,一个DBCS-图形测试模式在单引号前一定要有一个大写或者小写的G,在引号内,格式的开始必须用一个转出字符,结束必须用一个转入字符。用DBCS百分号(%%)来跳过任意多个字符或空字符,用DBCS下划线来指出接收在此位置上的任何双字节字符。
例子:在下面的例子中,%%表示DBCS百分号,_ _表示DBCS下划线,S/O表示转出字符,S/I表示转入字符,一对相同的SBCS字符,例如DD表示一个DBCS字符。 例1. DBCSFLD1 LIKE 's/o__DD__%%HH%%s/i'
仅选取字段DBCSFLD1的第二个字符是DD,第一和第三个字符是双字节字符,最后四位至少有一个是HH的记录,这种测试用于测试长度至少为10的任一bracketed-DBCS字段,如果在测试模式前加上一个字母G,也可以用来测试一个DBCS-图形字段。
DBCSFLD1 LIKE 's/o__DD__%%HH%%s/i'
如果DBCSFLD1是一个DBCS-open字段,这个测试可以选择有字母数字字符的数据,比如's/oXXDDMMs/iAnns/oGGHHs/i',在此DBCS百分号在到达HH 之前要跳过双字节字符和字母数字字符。 例2. DBCSFLD2 LIKE 's/o%%__%%s/i'
只选择DBCSFLD2字段包括至少一个双字节字符的记录。DBCS下划线可以代表一个双字节字符,但不能代表一个字母数字字符。一个不同的值‘%_%’,它选择至少一个字母数字的记录,一个's/o__________s/i'值选择那些十个字符长的双字节字符字段。 例3. DBCSFLD3 LIKE 's/oYY%%s/i A_o' 选取字段DBCSFLD3以双字节字符YY开始,结束于字母数字字符的所有记录,字母数字的第一位是空格,第二位是A,第四位是O,这个测试选择字段:“'s/oYYs/i Amo'; 's/oYYZZXXs/iMary Abo';or 's/oYYs/iABCs/oTTWWs/iM Aro'. ”。在双字节字符和字母数字字段的百分号是否为DBCS百分号是不重要的,下面两个值在应用上是等价的:'s/oYY%s/i A_o' 和 's/oYY%%s/i% A_o'.
如果测试模式由两个单引号单独组成或只有转出和转入字符包含在单引号内,这种测试模式做空串对待,这种模式选择有空串字段的记录。
2.5.2.4 利用多个比较测试
当使用多个比较时,要告诉查询怎样用AND/OR连接它们,两种连接类型是: AND连接 OR连接
如果在AND/OR列中没有规定内容,则查询认为是AND,所有用AND连接的比较对由比较组所选择的记录必须都为真。
例如,要选择客户姓为‘clarke’且住在Ariaona(‘AZ’)的记录,需要用AND连接。
* * * Select Records * * * * Type comparisons, press Enter. Specify OR to start each new group. * * Tests: EQ, NE, LE, GE, LT, GT, RANGE, LIST, LIKE, IS, ISNOT... * * * * AND/OR Field Test Value (Field, Number, or 'Characters') * * LASTNAME EQ 'Clarke' * * AND STATE EQ 'AZ' * * ____ ______________ _____ ______________________________ * * ____ ______________ _____ ______________________________ * * ____ ______________ _____ ______________________________ * * ____ ______________ _____ ______________________________ * * Bottom * * ________________________________________________________________________ * * ACCTNUMBER STREETADDR CRLIMIT YEAR * * COMPANY CITY BALDUE MONTH * * FIRSTNAME STATE PASTDUE * * MIDDLEINIT ZIPCODE DATEPAID * * LASTNAME TELENUMBER CURRENTDAT * * Bottom * * * * F3=Exit F5=Report F9=Insert F11=Display text * * F12=Cancel F13=Layout F20=Reorganize F24=More keys * * * * *
尽管这个例子在AND/OR列写了AND类连接,但这不是必须的,因为缺省值为AND。 用一个或多个AND连接的比较做为一组比较。
在比较中的另一种连接类型是OR,即一个或多个比较为真时,记录被选取。
没有特别指出,查询假定是AND连接,因此当你想用OR进行连接时,在AND/OR列必须写OR。
例如,要选择姓为Kingsbury或者贷款限额大于等于$5000的记录,要用一个OR连接。
* * * Select Records * * * * Type comparisons, press Enter. Specify OR to start each new group. * * Tests: EQ, NE, LE, GE, LT, GT, RANGE, LIST, LIKE, IS, ISNOT... *
* * * AND/OR Field Test Value (Field, Number, or 'Characters') * * LASTNAME EQ 'Kingsbury' * * OR CRLIMIT GE 5000 * * ____ ______________ _____ ______________________________ * * ____ ______________ _____ ______________________________ * * *
你可以用AND和OR连接在一起判定在报表中包含的记录,下面的例子选择订购期从1986年11月到1987年1月的客户记录,月份使用数字常量。
* * * Select Records * * * * Type comparisons, press Enter. Specify OR to start each new group. * * Tests: EQ, NE, LE, GE, LT, GT, RANGE, LIST, LIKE, IS, ISNOT... * * * * AND/OR Field Test Value (Field, Number, or 'Characters') * * MONTH LIST 11 12 * * AND YEAR EQ 86 * * OR MONTH EQ 1 * * AND YEAR EQ 87 * * *
如果写出来,上面的例子为:
(MONTH LIST 11,12 AND YEAR EQ 86) OR (MONTH EQ 1 AND YEAR EQ 87)
因为用AND和OR连接会使人迷惑,可用F5键来看你的报表,保证比较是确定想要的。 如果AND和OR组合看起来特别的复杂,可以观查所要比较的内容,看是否可以用更少的连接得到相同的选择记录。例如,下面是两种方法从Rhode island(‘RI’) 选择客户记录,在1986年或1987年有从$900到$1000预算平衡。
第一种方法用AND和OR连接比较。
* * * Select Records * * * * Type comparisons, press Enter. Specify OR to start each new group. * * Tests: EQ, NE, LE, GE, LT, GT, RANGE, LIST, LIKE, IS, ISNOT... *
* * * AND/OR Field Test Value (Field, Number, or 'Characters') * * BALDUE RANGE 900 1000 * * AND STATE EQ 'RI' * * AND YEAR EQ 86 * * OR BALDUE RANGE 900 1000 * * AND STATE EQ 'RI' * * AND YEAR EQ 87 * * ____ ______________ _____ ______________________________ *
写出来,这个例子所用比较如下:
(BALDUE RANGE 900,1000, AND STATE EQ 'RI' AND YEAR EQ 86) 或
(BALDUE RANGE 900,1000, AND STATE EQ 'RI' AND YEAR EQ 87)
第二种方法,用LIST测试和AND连接,选择同样的记录,但需要的行少一些而且易于阅读。
* * * Select Records * * * * Type comparisons, press Enter. Specify OR to start each new group. * * Tests: EQ, NE, LE, GE, LT, GT, RANGE, LIST, LIKE, IS, ISNOT... * * * * AND/OR Field Test Value (Field, Number, or 'Characters') * * BALDUE RANGE 900 1000 * * AND STATE EQ 'RI' * * AND YEAR LIST 86 87 * * ____ ______________ _____ ______________________________ * * ____ ______________ _____ ______________________________ * * Bottom * * *
写出来,它用的比较如下:
(BALDUE RANGE 900,1000 AND STATE EQ 'RI' AND YEAR LIST 86,87)
注:CCSID也能影响记录的选择,详细内容请看本书原文E.4.6。
2.5.2.5 增加和取消比较
‘选择记录’显示的提示部分一次只能提供六个比较位置,可以按Page Down键来得到
空输入行放在输入的最后一行。在已规定了多于六种比较时,可以按Page Up键来看以前的那些。
如果想在已经键入好的比较之间添加一个比较,可以按F9键,在需要的位置插入一个空行,这样就不需要重新键入所有的内容,按F9键时,新的行就加到光标所在的位置上,也可以用按F9键取代按Page Down键在比较中增加行。 如果想改变比较并且想把它从这组中取消,用空格键或字段退出键使它成为空格,如果想把所有的比较都取消,请按F12键,在‘选择记录’显示上所键入的任何东西都被取消了。 如果已经删去一行或两行,最后一行是有效空行但需要更多的行,按F20键重新组织空行,查询会把空行移到后面。在显示屏上可看到前六个比较,必须按Page Down键来获取空行,或者在预想位置加一空行。如果用完空行而没有空行取消,应该重新设计比较,使它们不多于100-行的限制。
2.5.3 为办公自动化系统相关栏列表选择记录
一个相关的查询用于data/text合并,使列的列表部分与办公自动化格式信件的多烤贝部分相关,这样的查询只能用于这样特殊的目的;不能用相关查询显示或打印一个报表。 在2.5.3.1用一个相关查询打印一封当年客户购买情况的信,相关查询的特定部分是它的‘选择记录’显示,在显示中一个或多个值在字段名前有一个冒号,如下:
CUSNAME EQ :NAME
冒号表明查询是一个相关查询,它也指出相关值字段叫NAME它,是在不同的值或文件中(是说查询与另外的查询或文件相关)。在‘选择记录’显示上按enter键,在‘规定相关值限定符’显示上出现冒号,在此显示上,给出包括相关值的文件或查询名,文件或查询所在的库,及相关值为文件时,给出成员名。
2.5.3.1 相关列列表合并的例子 一家公司发信给信用额度大于$500的客户,每封信包括一个客户购买和价格的清单,文章用“TO:”开始,后面跟着一个用户名称字段的多拷贝指令,这个姓名字段,NAME,是从在库CUST中的查询QRY1得到的,(QRY1是基于信息文件CUS89,它仅选择信用限制值大于$500的记录)。 在信中有一行:“These are your purchases:”,在这行下方是列列表指令,包括两个字段,一个项目描述,另一个是价格。这两个指令都引用QRY2,它也在库CUST中。在它的‘选择记录’显示中,QRY2有比较CUSNAME EQ:NAME显示,CUSNAME是QRY2用的购买文件的名称字段,在它的‘规定相关值限定符’显示上,QRY2指出,NAME字段在查询QRY1内,它也在库CUST中。 一封信由被QRY1选择的记录组成,也就是说对每个信用限制大于$500的客户,信是发给名字在NAME字段中的客户。相关值的作用非常便于理解,如果仅对一封信有作用,可以说一个 J.S.AL.ISON,对于这封信,比较CUSNAME EQ :NAME 起作用,CUSNAME 的值等于 'J. S. Alison',对于CUSNAME值等于‘J.S.AL¦SON’的在购买文件中的每条记录,项目描述和价格写入信中。 一封特定的信有许多项目和价格列表,如果一个客户什么也没有购买,对那位客户的信就不会打印出来。
这个说明适合于多封信件,且引用 CUST库中的查询 QRY1。 To: -&NAME Thank you for your business. Many of our customers appreciate a year-end summary. These are your purchases: Item Description Price ---------------- ----- -&ITEM -&PRICE 这两个正文是列清单,并且引用库CUST中的查询QRY2。
在信件打印时,它象如下的样子:
* * * To: J. S. Alison * * * * Thank you for your business. Many of our customers * * appreciate a year-end summary. These are your purchases: * * * * Item Description Price * * ---------------- ----- * * * * Towel 7.00 * * Washcloth 2.50 * * Soap dish 2.99 * * * * *
下面是对例子的评价: 多拷贝指令,NAME和相关值NAME引用相同的查询QRY1。 相关值是用来比较两个文件中的名称字段、信用文件和购货文件,通常来讲,字段名可以相同也可不同,但字段本身必须是可比较的。如果一个以第一名称开始而另一个以最后名称开始,就不可以比较名称字段。 NAME字段既用于多烤贝正文指令,又用做相关值的一部分,这无关紧要,相关比较也可以比较客户号来代替姓名。 如果发给每一个客户的信都在购买文件CUS89中,多拷贝指令的NAME会引用文件CUS89来代替查询QRY1,并且相关比较会是CUSNAME EQ:NAME,这时,QRY2仍是必须的,而QRY1不是。 QRY1可以作为查询运行,但QRY2不能,因为它有一个相关值。
2.5.3.2 相关列列表多拷贝的规则和指导 下面是相关列列表多拷贝的规则: 至少有一些列列表指令必须引用包括相关值的查询。 在同一文本中,列列表指令不能引用包括一个相关值的多个查询。 至少有一个多拷备指令放在所有相关列列表指令之前。 查询中的相关值必须引用多拷备指令所引用的相同文件或查询。 一个包括相关列列表指令的文本也可以包含固定数据和普通的列列表指令。 用相关值命名的查询自身不能包含一个相关值。 可以用有仅对文本中目录列正文指令相关值的查询,在‘处理查询’或‘退出Data/text合并’显示中,文本中对有相关值的查询仅选择选项7;而不选择选项6和选项8。 必须保存有相关值的查询以备后用。不能运行不处理使用数据文本的查询,虽然这意味着不能按F5键来看报表,但可以按F13键来查看报表样子。 在使用一个相关值时,应该认真检查在‘选择记录’显示中的Value列上输入的名称,这是因为在保存查询以备后用时才检查是否有错。
第八章 选择分类字段 本章介绍怎样选择分类字段来控制在查询输出安排数据。要查询,用一个分类字段的内容做为对输出记录排列一个特定的顺序。例如,如果想用一个客户主文件来获取所有你的客户目录,还想让这些客户按特定的顺序进行分类,例如,按姓的字母顺序,按国家的字母顺序,或由这两个的字母顺序,在这种情况下,需要确定一个或多个分类字段来保证输出按想要的顺序。
2.6.1 让查询决定记录的顺序 可以让查询直接检索数据库里的数据,不规定任何顺序放在查询中。如果在报表中数据的顺序并不重要,可不考虑选择分类字段。当运行一个没有分类字段的查询时,行的检索顺序是不规则的。如果次序很重要,在查询中要规定一个排序字段,如果想预测输出顺序,要有数据库概念的全面知识,包括文件类型和访问路径。 注:如果查询或SQL/400程序使用一个没有指定分类字段的逻辑文件,会产生意想不到的结果。例如,可能接收不到物理文件的逻辑视图。
如果没有在‘定义查询’显示上的‘选择分类字段’选项的OPT列写1,在处理查询定义时,‘选择分类字段’显示不会出现。在运行查询时数据没有分类。 如果在OPT列上写了1,在查询定义过程中会出现‘选择分类字段’显示,如果改变主意不想选择任何的分类字段,按F12键回到从前的显示。
2.6.2 选择想用的分类字段 在‘选择分类字段’显示中,在sort prty列中输入一个分类优先号码来选择想用的分类字段,从列表至多可选择32个分类字段,(这些字段是在‘选择和分类字段’显示中选上的字段,如果在那里没选字段,此时出现所有的字段)。所有分类字段的总长度不能超过10,000字符。 根据你输入的号码,查询建立一个分类优选级,可以使用从0到999任一数字,号码越小,优先级越高。如果使用10、20、30等这样的号码,在后来可很容易的加另外的分类字段。 也可以确定让分类字段按升降分类或按降序分类,只要在A/D列输入A(升序)或D(降序)即可(如果没规定,缺省值为升序)。
* * * Select Sort Fields * * * * Type sort priority (0-999) and A (Ascending) or D (Descending) for * * the names of up to 32 fields, press Enter. * * * * Sort * * Prty A/D Field * * ___ _ ACCTNUMBER * * 30 _ INIT * * 20 _ LASTNAME * * ___ _ STREETADDR * * ___ _ STATE * * ___ _ CITY * * ___ _ ZIPCODE * * 10 D CRLIMIT * * * * * * * * * * Bottom * * * * F3=Exit F5=Report F11=Display text F12=Cancel * * F13=Layout F18=Files F20=Renumber F24=More keys * * * * *
输入分类优先级数字后,用enter键选择,查询按下列顺序分类字段: 如果字段是在‘选择和分类’显示中选择的,它们依照下列顺序:
1、所有在这个显示以前选定的排序字段按规定顺序。 2、查询选定的字段,但没选定做分类字段,它们按在‘选择和分类’显示中规定
的顺序列出。
如果没有字段在‘选择和分类’显示上选定,字段按如下顺序显示: 1、所有在这个显示以前预先选定的分类字段,按规定顺序显示。
2、被查询定义的结果字段。
3、所有其它字段,按在选择文件中的记录格式中的顺序,第一个文件的字段被列在最先,接下来是第二个文件,依次类推。
然后查询就会显示一条信息让按enter键确认,这样就有机会来重安排分类字段。 要从选择中取消一个分类字段,把字段名前面的数字去掉,不用去重新编排其它字段。想要改变分类字段的优先级,只需改变数字即可。
如果作了改动,再按一次enter键,字段名字目录就被重新分类,先出现分类字段,接着是其余被选定用于输出的字段。如果想重新规定优先级数,按F20键。
当满意分类字段的选择都是正确时,最后按enter键来结束字段分类选择。 下面的例子解释如何规定分类优先级:
假定你是一位贷方管理者,想要一份关于客户姓名和地址的报表,要求如下:
最高信用量限制的客户排晨最前,依次类推。
如果有两个或两个以上的客户来自同一国家且有相同的信用限制,客户须按国家分组。
客户的国家按字母顺序分类。
要得到想要的次序,第一分类字段是信用量限制(CRLIMIT),按降序分类,第二个分类字段是国家(STATE),第三个分类字段是姓(LASTNAME);最后一个分类字段是名(INIT)。
如下所示填好显示中的内容:
* * * Select Sort Fields * * * * Type sort priority (0-999) and A (Ascending) or D (Descending) for the * * names of up to 32 fields, press Enter. * * * * Sort * * Prty A/D Field Text Len Dec * * ___ _ ACCTNUMBER Account number 6 * * 40 _ INIT Customer first and middle initial 2 * * 30 _ LASTNAME Customer last name 20 * * ___ _ STREETADDR Street address 20 * * ___ _ CITY City 15 * * 20 _ STATE State abbreviation 2 * * ___ _ ZIPCODE Zip code 5 * * 10 D CRLIMIT Credit limit amount 7 2 *
* * * * * * * * * Bottom * * * * F3=Exit F5=Report F11=Display names only F12=Cancel * * F13=Layout F18=Files F20=Renumber F24=More keys * * * * *
注意,在CRLIMIT字段的A/D列中写D,其它字段都按升序分类。
这个显示给出一些附加信息,例如字段的说明、长度、小数位等,可以用F11键在只显示字段名和既显示字段名又显示额外信息之间切换。
按enter键之后,再次出现‘选择分类字段’显示,但这次给出优先级字段按规定顺序首先列出,而没做分类的字段移到下面。
* * * Select Sort Fields * * Type sort priority (0-999) and A (Ascending) or D (Descending) for the * * names of up to 32 fields, press Enter. * * * * Sort * * Prty A/D Field Text Len Dec * * 10 D CRLIMIT Credit limit amount 7 2 * * 20 A STATE State abbreviation 2 * * 30 A LASTNAME Customer last name 20 * * 40 A INIT Customer first and middle initial 2 * * ___ _ ACCTNUMBER Account number 6 * * ___ _ STREETADDR Street address 20 * * ___ _ CITY City 15 * * ___ _ ZIPCODE Zip code 5 * * * * * * * * * * Bottom * * * * F3=Exit F5=Report F11=Display names only F12=Cancel * * F13=Layout F18=Files F20=Renumber * * * * *
注意由于对STATE、LASTNAME和INIT字段的A/D列为空格,查询会用A来取代空格,即被定为升序。这个例子产生的报表应象下面这样:
* * * Account Last Street Zip Credit * * Number Init Name Address City State Code Limit * * ------- ---- -------------- -------------- ---------- ----- ----- ------- * * * * 938485 CA Johnson 101 2nd St. Montvale GA 30545 9999.00 * * 583990 GF Abraham 20 Vineview Elk River MN 55330 9999.00 * * 693829 NO Thomas 8256 1st Ave. Twostone WY 82609 9999.00 * * 846283 JS Alison 20749 73rd St. Ottawa MN 56342 5000.00 * * 938472 EJ Henning 1 Oil Lane Oiltown TX 75217 5000.00 * * 029384 MA Brown 904 38th St. New York NY 12201 1000.00 * * 397267 OS Tyron 1039 20th Ave. Falls NY 14841 1000.00 * * 475938 MA Doe P.O. Box 90834 Reading CA 95685 700.00 * * 930484 BJ Hubbard 10 Colusa Junction CA 91722 700.00 * * 192837 CE Lee 98 Elm St. Falls NY 14841 700.00 * * 392859 LL Vine 18940 Main St. Tombstone VT 05046 700.00 * * 389572 RS Stevens 38 Yale Blvd. Deer Falls CO 80226 400.00 * * 839283 AC Jones 1984 5th Ave. New York NY 13041 400.00 * * 493264 JS Jones P.O. Box 8910 New York NY 13088 400.00 * * * * * * * * * * * * *
最高的信用量限制排在最前,紧跟着是第二高的,在相同信用限制的每一组,记录按国家的字母分类,如果国家相同,客户用姓的字母分类,如果多个客户以上内容都相同,则按名字的字母分类,记录顺序是由名中的顺序确定。
2.6.2.1 附加的考虑 数值字段按代数值分类。 在SBCS、DBCS_open、DBCS_either字段中的SBCS字符数据用字符的十六进制表达式顺序分类或按选择的分类顺序定义分类,详细内容看第九章。 在字符字段中的用数据的DBCS数据十六进制表达式分类。分类顺序不适于在DBCS字符字段中的DBCS数据。 UCS2-图形数据按数据的十六进制表达式分类,分类顺序不适于在UCS2-图形字段中的
UCS2_图形数据。 日期、时间和时间标字安段是按年代顺序分类。 所有的数据类型,如果分类按升序,空值被排在最后并且用(-)号表示。例如对下列数据: 字段 值 记录 1 B 3 A 2 空值 4 空值 分类报表应为: A
B — —
第九章 选择整理顺序 此章介绍怎样为查询选择一个整理顺序。整理顺序用于对SBCS、DBCS-open、DBCS-either字符字段有SBCS字符数据的一些特别操作(例如分类、比较和求值)。一个整理顺序为每个字母数字和特定字符指定一个权数,使查询知道怎样在字符字段和常量上完成操作。整理顺序仅用在SBCS、DBCS-open和DBCS-either字段中的SBCS字符数据。它不能被应用于:数字、日期、时间、时间标记,DBCS-only、DBCS-graphic或UCS2-graphic数据。 注释:要提供一些扩展条件而不管数据中字符的十六进制表达式,CCSID会与整理顺序一起保存,详细内容请看本书原文的
2.7.1 让查询/400选择整理顺序 如果没在‘定义查询’显示上的选择整理顺序的OPT列输入一个1,查询/400会使用缺省的整理顺序。如果从来没有保存过整理顺序的缺省值,新查询的整理顺序是十六进制顺序。
2.7.1.1 设置缺省值 通常,对于所有查询会用相同的整理顺序。对于大多数用户,仅需要语言整理顺序当你生成或者修改一个查询时,选择整理顺序且把它做为缺勤省值保存在查询配置文件中,所有查询都可以使用这个整理次序而不需去对每一个查询逐一定义。(这不是说必须使用同一的整理顺序)。 当已经选择了整理顺序后,可用F23键来保存这个选项,作为查询用户配置文件中的缺省值。 如果想定义自己的整理顺序,也可以在‘定义整理顺序’显示中用F23键来保存整理顺序,这个顺序的CCSID假定来自作业的CCSID,也保存在此文件中。
2.7.2 整理顺序的目的 当在一个字符字段完成下列操作时,整理顺序决定什么字符在其它字符前:
选择记录 连接文件
排列记录
计算字段的最大和最小值
决定什么时候产生报表中断
整理意味着把项目设置在正确的顺序或者检查项目是否使用正确顺序,对于查询/400,可以使用的整理顺序是: 由查询/400提供本土语言的整理顺序
你定义的整理顺序 一个翻译表,由CRTTBL命令生成,放在一个库中。
系统支持的一种顺序排列。对于每种支持的语言,系统对所有字符用唯一权 表,而对某些字符使用共享权表。
除非你选择一个整理顺序,否则使用标准的整理顺序,它使用表示字符的十六进制的数值顺序。
2.7.2.1 整理顺序和CCSIDs 可以对在显示列表中的每个字符分配一个顺序号来定义整理顺序,在用从64(‘40’X’)每次增加10,重排数之后,每个字符分配的数值由一个字节的表项保存在偏移量内,它与这个字节符的十六进制表达式的数值相对应,以后也可用此十六进制表达式来检索字符数据比较的整理权。 一个CCSID和一个整理顺序一起保存,这样整理顺序能被不同码页的数据转换使用。整理顺序的转换是重新排列表中数字,每个字符能找到适当的整理权。
2.7.3 整理顺序如何影响查询/400 的查询的几个定义步骤使用选择的整理顺序决定最终结果。整理顺序用在以下情况中: 当用一个文件中的SBCS、DBCS-open或DBCS-either字符字段与在其它文件的字符地字段相比较,用下面的测试连接文件时: —EQ
—NE —GT —LT —GE —LE
当使用比较测试,如EQ, NE, GT, LT, GE, LE, LIKE, NLIKE, LIST, NLIST, RANGE来选择,基于SBCS、DBCS-open或者DBCS-either字符字段值的记录时。
注:在‘规定处理选项’显示中对‘为所有字符比较使用整理顺序’选项规定为NO时,查询/400对EQ,NE,LIST,NLIST,LIKE和NLIKE比较不使用整理顺序,或把它提供给DBCS字段和常数中的SBCS字符。
当选择了一个SBCS、DBCS-open或者DBCS-either字符字段做整理记录。
当用最小和最大汇总函数时,对SCBS、DBCS-open或者DBCS-either字符字段定义。 当对SCBS、DBCS-open或DBCS-either字符字段定义报表中断时。
2.7.4 选择一个整理顺序 要选择整理顺序,必须知道数据是怎样存在文件中。如果在字符字段中既有大写又有小写SBCS字符,必须决定是否同等对待大写字符和小写字符。分析好后,可以选择一个整理顺序来产生想要的结果,或者自己去定义一个整理顺序。
* * * Select Collating Sequence * * * * The selected collating sequence will be used for character fields when * * sorting, selecting records, joining files, finding minimum and maximum * * values, and determining when a control break has occurred. * * * * Type choices, press Enter. * * * * Collating sequence * * option . . . . . . . . 1 1=Hexadecimal * * 2=Query/400 English * * 3=Define the sequence * * 4=Translation table * * 5=System sort sequence * * * * For choice 4=Use translation table: * * Table . . . . . . . . __________ Name, F4 for list * * Library . . . . . . __________ Name, *LIBL, F4 for list * * * * * * * * F3=Exit F4=Prompt F5=Report F10=Process/previous* * F12=Cancel F13=Layout F17=Job sequence F24=More keys * * * * * * *
2.7.4.1 使用十六进制整理顺序 标准的整理顺序是十六进制整理顺序。对于任何给定的CCSID,所有的字符集字符(字母数字和特殊字符)分配一个十六进制值,字符和它们相关的十六进制值叫做码页,码页是16×16的矩阵形,如表9-1所示。
表 9-1 编码表如何工作的例子。左列中的值是十六进制值的前半部,每列顶上的值是这个十六进制值的后半部。在这个表中小写字母a是在 '81'X 而大写字母A是在 'C1'X。这仅仅是一个例子,实际的表包括所有字母数字和特别字符。 0 1 2 3 4 5 6 7 8 9 A B C D E F 0 1 2 3 4 5 6 7 8 9 A B C D E F
a A 表9-1介绍怎样使用码头表。左列值是十六进制的前半部,顶行是16进制值的后半部,表中小写的a是在‘81’X,而大写的A是在‘C1’X。这仅是个例子,实际的表包括所有字母数字和特殊性殊字符。 当用十六进制整理顺序时,在码表中的字符是十六进制值的升序排列,用十六进制整理的一个好处是它忽略大小写。 对于CCSID37,它是英语系统的缺省值,十六进制整理顺序为: 空格 特殊字符(. + & %) a—r
S—Z A—I
J—R \\ S—Z 0—9
要想知道十六进制整理顺序什么样,在‘选择整理顺序’显示中,选择选项3并按enter键,出现‘定义整理顺序’的显示,用F14键,查询/400给出字符和它们在十六进制整理顺序的顺序号。
每一个字符的十六进制值在‘40’X到 ‘FE’X范围列出,可以用翻页键看全,用F1键在Hex列中看看每个字符的十六进制值。用F12来返回到‘选择排列到顺序’显示。 如果选择十六进制排列,保存在仅以汇总输出的数据库文件中最小和最大值可能与在打印或报表显示中有不同值,即使用相同的作业CCSID来运行查询也是这样,这种情况仅在最小或最大值字段转换为作业的CCSID为了打印或显示时。
2.7.4.2 使用本国语言整理顺序 你可能选择由查询/400提供的本国整理顺序,这样字符数据由更有用的顺序存储。在英国和美国,提供的整理顺序是查询/400英语。用这种顺序及大多数查询/400语言顺序,一对大小写字符(例如A和a)’排列在一起,因为他们共享一个整理权,以区别于其它字符的权。 语言整理顺序没有被保存在查询定义中。如果保存了查询,并且它用在不同语言系统中,使用其它语言的整理顺序。当需要保存排列使用的语言,在‘选择整理顺序’显示上用选项3。
2.7.4.3 定义自己的整理顺序 可以定义自己的整理顺序,这样要字符数据按照特定要求进行整理。 例如,有两位数的客户帐户数字字段,已经超过了它的最大值99,99后的项是字母A1、A2等等,想让字母项放在数字项后,可以定义自己的整理顺序,使字母数据在数字数据后面。
想要定义自已的整理顺序,在‘选择整理顺序’显示中的整理顺序选项提示中写3,按enter键。
* * * Select Collating Sequence * * * * The selected collating sequence will be used for character fields when * * sorting, selecting records, joining files, finding minimum and maximum * * values, and determining when a control break has occurred. * * * * Type choices, press Enter. * * * * Collating sequence * * option . . . . . . . . 3 1=Hexadecimal * * 2=Query/400 English * * 3=Define the sequence * * 4=Translation table * * 5=System sort sequence * * *
出现下列显示:
* * * Define Collating Sequence * * * * CCSID. . . . . . . . . . . . . . : 37 * * * * Position to . . . . . . . . . . . _ Char * * * * Type sequence number (0-9999) for each character, press Enter. * * (Use the same sequence number to have characters collate in a group.) * * * * Sequence Char Hex Sequence Char Hex Sequence Char Hex * * 10 40 90 c 83 140 h 88 * * 20 41 90 C C3 140 H C8 * * 30 E1 100 d 84 150 i 89 *
* 40 - 60 100 D C4 150 I C9 * * 50 ' 7D 110 e 85 160 J D1 * * 60 - CA 110 E C5 160 j 91 * * 70 a 81 120 f 86 170 K D2 * * 70 A C1 120 F C6 170 k 92 * * 80 b 82 130 g 87 180 L D3 * * 80 B C2 130 G C7 180 l 93 * * More... * * F3=Exit F11=Chars only F12=Cancel F14=Hexadecimal * * F15=Language sequence F16=Use default F20=Renumber F24=More keys * * Collating sequence initialized from national language sequence * * *
显示顶端且给出顺序的CCSID在总是作业的CCSID。如果整理顺序的CCSID与作业的CCSID不匹配,那么在显示之前,要转换预先定义的或缺省的顺序。
可以看到列表及分配给每个字符的顺序号,顺序号从10开始按升序增量为10,有信息指出所用的整理顺序,可以用下列的顺序作为定义你自已整理顺序的依据:
十六进制顺序 查询/400语言顺序 你用户1D保存的缺省顺序 系统顺序 想做这些事,分别用F14、F15、F16、F17键。 用翻页键来看全所列的字符。某些字符不能显示在一些终端设备上,这样一些顺序号可能没有字符跟随。按F11键,每一个字符的十六进值就展示出来,即使字符不能显示在终端设备上也行。可用position to提示来快速查找列表中的某个字符。
要定义自已的整理顺序,修改字符边上的数字。每个字符必须有一个顺序数字。两个或多个字符可以定义相同的顺序数字,在用它们操作时,这些字符被认为是相等的。
当按你的意愿在整理上重新确定字符数字后,按enter键。字符按规定的顺序出现,确认空格字符始终在第一个。想要重新给出字符在新顺序中,以10为增量号码,按F20键。用F20键来重排序,能在后来很容易的规定一个新顺序。必须再按enter键来确认这是你想要用的顺序。在退出此显示后,字符重新排列,也可用F23键保存这个整理顺序做为缺省值。
2.7.4.4 选择一个转换表
如果查询需要一个整理顺序但没有提供一个可用的整理顺序,而建立一个自已定义的整理顺序,又没产生预定的结果,可以用一个转换表来建立一个查询需要的顺序,转换表(类似用户定义的整理顺序)生成和使用转换数据,在V2.3版本之前生成的转换表的CCSID都为65535。
如果想使用转换表,在‘选择整理顺序‘显示中选择选项4,键入表名和表所在的库名。如果想让查询/400列出已有的表,把光标移到Table提示上并按F4键,下面是一个选择转换表显示的例子:
* *
* Select Translation Table * * * * Library . . . . . . . . *LIBL Name, *LIBL, F4 for list * * Subset . . . . . . . . __________ Name, generic* * * Position to . . . . . . __________ Starting character(s) * * * * Type option (and Table and Library), press Enter. * * 1=Select * * * * Opt Table Library Text * * _ __________ _________ * * _ QASCII QSYS EBCDIC TO ASCII TRANSLATE TABLE * * _ QEBCDIC QSYS ASCII TO EBCDIC TRANSLATE TABLE * * _ QLA10025S QSYS LATIN1 CCSID 37 SHARED WEIGHTED * * _ QLA10025U QSYS LATIN1 CCSID 37 UNIQUE WEIGHTED * * _ QRMASCII QSYS EBCDIC TO ASCII TRANSLATE TABLE FOR RM/COBOL * * _ QRMEDCDI QSYS ASCII TO EBCDIC TRANSLATE TABLE FOR RM/COBOL * * _ QSYSTRNTBL QSYS LOWER TO UPPER CASE TRANSLATE TABLE * * _ QA3BA69A3R QUSRSYS CHRID(*N 1009) TO CHRID(1150 1025) TRANSLATE * * * * * * More... * * F4=Prompt F11=Display names only F12=Cancel * * F19=Next group * * *
因篇幅问题不能全部显示,请点此查看更多更全内容