首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JCL SYNCSORT: OMIT和INCLUDE不能互换?

JCL SYNCSORT: OMIT和INCLUDE不能互换?
EN

Stack Overflow用户
提问于 2014-07-25 19:17:59
回答 1查看 45.2K关注 0票数 1

我得到了这两个排序卡片不同的输出,有人能告诉我为什么吗?

1.

代码语言:javascript
复制
INCLUDE COND=((1,3,CH,NE,C'ABC',AND,5,3,CH,NE,C'PQR'),OR,
              (1,3,CH,NE,C'CAB'),OR,
              (1,3,CH,NE,C'CBA'),OR,
              (1,3,CH,NE,C'ABC',AND,5,3,CH,NE,C'PQR'))
SORT FIELDS=COPY

2.

代码语言:javascript
复制
   OMIT COND=((1,3,CH,EQ,C'ABC',AND,5,3,CH,EQ,C'PQR'),OR,
              (1,3,CH,EQ,C'CAB'),OR,
              (1,3,CH,EQ,C'CBA'),OR,
              (1,3,CH,EQ,C'ABC',AND,5,3,CH,EQ,C'PQR'))
SORT FIELDS=COPY

这基本上就是,当不相等时包含,当相等时省略。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-07-25 19:55:45

问题是你没有颠倒以及的顺序,这意味着它们是非常不同的排序测试,所以会给出不同的答案

如果你看一下第一个测试,特别是:

代码语言:javascript
复制
          (1,3,CH,NE,C'CAB'),OR,
          (1,3,CH,NE,C'CBA')

总是 true吗,

当chars 1,3 is CAB or CBA时,以下代码为false

代码语言:javascript
复制
          (1,3,CH,EQ,C'CAB'),OR,
          (1,3,CH,EQ,C'CBA')

使用布尔逻辑,规则是

代码语言:javascript
复制
 not (a and b) = (not A) or (not b)
 not (a or b) = (not A) and (not b)

因此,当从忽略更改为包含时,您必须反转&或e228的

代码语言:javascript
复制
OMIT COND=((1,3,CH,EQ,C'ABC',AND,5,3,CH,EQ,C'PQR'),OR,
          (1,3,CH,EQ,C'CAB'),OR,
          (1,3,CH,EQ,C'CBA'),OR,
          (1,3,CH,EQ,C'ABC',AND,5,3,CH,EQ,C'PQR'))
SORT FIELDS=COPY

变成:

代码语言:javascript
复制
INCLUDE COND=((1,3,CH,NE,C'ABC',or,5,3,CH,NE,C'PQR'),and,
          (1,3,CH,NE,C'CAB'),and,
          (1,3,CH,NE,C'CBA'),and,
          (1,3,CH,NE,C'ABC',or,5,3,CH,NE,C'PQR'))
SORT FIELDS=COPY
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24954555

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档