使用 SYNCSORT (JOINKEYS) 联接 2 个数据集,是否可以以任何方式对某些值进行通配符



使用 SYNCSORT 连接 2 个数据集,是否可以以任何方式对 F1 的某些值进行通配符?

我想搜索单词 BEER,但在 F2 中,值可能是 BEER 或 BEER-BLONDE 等。

这是我现在拥有的代码。如果 F2 包含 BEER-BLONDE,则记录不会配对,因为该值不是 BEER(后面有 16 个空格(,但我仍然需要将代码设置为 0000100002。

//STEP01   EXEC PGM=SORT,PARM='DYNALLOC=(SYSDA,255)'
//SORTMSGS DD SYSOUT=*
//SORTJNF1 DD *
0000100001WINE
0000100002BEER
0000100003OTHER
/*
//SORTJNF2 DD DSN=ZZ.MAINDATA,
//            DISP=SHR,DCB=BUFNO=255
//SORTOUT  DD DSN=ZZ.OUTPUT,
//            DISP=(NEW,CATLG,DELETE),
//            UNIT=(SYSDA,59),
//            SPACE=(CYL,(500,100),RLSE)
//SYSIN    DD *
JOINKEYS FILE=F1,FIELDS=(11,20,A)
JOINKEYS FILE=F2,FIELDS=(40,20,A)
JOIN UNPAIRED,F2
REFORMAT FIELDS=(F2:1,10,F1:1,10,F2:21,20)
OPTION COPY
//DFSPARM  DD *
MSGDDN=SORTMSGS

我不/不能列出所有可能性(下面的示例(,因为它们会经常更改,它可以设置为任何内容。

//SORTJNF1 DD *
0000100001WINE
0000100002BEER
0000100002BEER-BLONDE
0000100002BEER-BROWN
0000100002BEER-WHITE
0000100002BEER-DARK
0000100003OTHER
/*

我可以用SORT或ICETOOL做些什么来解决这个问题吗?

谢谢

我后来了解到,与其使用 JOIN 根据另一个值(在同一行上(更改值,不如简单地将 IFTHEN 与 SYNCSORT 一起使用

//SYSIN    DD *
  OPTION COPY
  INREC IFTHEN=(WHEN=(40,11,CH,EQ,C'BEER-BLONDE'),OVERLAY=(11:C'0000100002')),
    IFTHEN=(WHEN=(40,10,CH,EQ,C'BEER-BROWN'),OVERLAY=(11:C'0000100002')),
    IFTHEN=(WHEN=(40,10,CH,EQ,C'BEER-WHITE'),OVERLAY=(11:C'0000100002')),
    IFTHEN=(WHEN=(40,9,CH,EQ,C'BEER-DARK'),OVERLAY=(11:C'0000100002')),
    IFTHEN=(WHEN=(40,4,CH,EQ,C'BEER'),OVERLAY=(11:C'0000100002')),
    IFTHEN=(WHEN=(40,4,CH,EQ,C'WINE'),OVERLAY=(11:C'0000100001')),
    IFTHEN=(WHEN=(40,5,CH,EQ,C'OTHER'),OVERLAY=(11:C'0000100003'))

相关内容

  • 没有找到相关文章

最新更新