Sorting JCL SYNCSORT:省略和包含不可互换?

Sorting JCL SYNCSORT:省略和包含不可互换?,sorting,include,mainframe,jcl,syncsort,Sorting,Include,Mainframe,Jcl,Syncsort,这两张分类卡的输出不同,有人能告诉我为什么吗 一, 二, 这基本上是,当不相等时包括,当相等时忽略 问题是您没有反转和以及或。这意味着 它们是非常不同的排序测试,因此会给出不同的答案 如果您查看第一次测试,尤其是: (1,3,CH,NE,C'CAB'),OR, (1,3,CH,NE,C'CBA') 总是正确 当chars 1,3为任何但为CAB或CBA时,以下为假: (1,3,CH,EQ,C'CAB'),OR, (

这两张分类卡的输出不同,有人能告诉我为什么吗

一,

二,


这基本上是,当不相等时包括,当相等时忽略

问题是您没有反转以及。这意味着 它们是非常不同的排序测试,因此会给出不同的答案

如果您查看第一次测试,尤其是:

          (1,3,CH,NE,C'CAB'),OR,
          (1,3,CH,NE,C'CBA')
总是正确

当chars 1,3为任何但为CABCBA时,以下为

          (1,3,CH,EQ,C'CAB'),OR,
          (1,3,CH,EQ,C'CBA')
对于布尔逻辑,规则是

 not (a and b) = (not A) or (not b)
 not (a or b) = (not A) and (not b)

因此,当从省略更改为包含时,必须反转&

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
变成:

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

问题是您没有反转,以及。这意味着 它们是非常不同的排序测试,因此会给出不同的答案

如果您查看第一次测试,尤其是:

          (1,3,CH,NE,C'CAB'),OR,
          (1,3,CH,NE,C'CBA')
总是正确

当chars 1,3为任何但为CABCBA时,以下为

          (1,3,CH,EQ,C'CAB'),OR,
          (1,3,CH,EQ,C'CBA')
对于布尔逻辑,规则是

 not (a and b) = (not A) or (not b)
 not (a or b) = (not A) and (not b)

因此,当从省略更改为包含时,必须反转&

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
变成:

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

哦,是的!!非常感谢你。现在似乎是个愚蠢的问题,但我几乎会相信包含和省略条件的处理方式是不同的!:)哦,是的!!非常感谢你。现在似乎是个愚蠢的问题,但我几乎会相信包含和省略条件的处理方式是不同的!:)有什么事困扰着我。意识到你的第一个和最后一个条件是一样的。可能是试着让它工作时留下的。那就把最后一个剪掉吧,我有点不舒服。意识到你的第一个和最后一个条件是一样的。可能是试着让它工作时留下的。所以,把最后一个剪掉。