0

我有这个表情

(IIF(LTRIM(RTRIM(SUBSTR(HEADER_INFO,2,13)))='',NULL,LTRIM(RTRIM(SUBSTR(HEADER_INFO,2,13)))))

对于下面的示例数据,但是当它在 H 记录之后找到多个 D 记录时它会失败。

我的目标是有一个表达式,如果它在 H 记录之后看到多个 D 记录,它也会读取这些记录,如果只有一个 D 记录,它会读取该记录并移动到下一个 H 记录。

现在,它正在失败,因为它期望在每个 D 记录之后都有一个 H 记录,但是有如下所示的情况,在 H 记录之后有多个 D 记录。

HP5919274001273HWA8365C    DEFORD              DONITA         1245327121     1184950479                    6021928     0 20191001201910017        0       
D1   D00054317763400       
HP2519274011110HWA8365C    DEFORD              DONITA         1245327121     1184950479                    6021928     0 20191001201910017        0       
D1   P00054317763400       
HQ2519280005752HWA8365C    DEFORD              DONITA         1245327121     1184950479                    6022011     0 201910072019100710       0       
D1   P49348004537100       
D2   P49348015339100       
D3   P00054350049100       
HQ2519289004679HWA8365C    DEFORD              DONITA         1245327121     1184950479                    6022011     1 201910072019101610       0       
D1   P49348004537100       
D2   P49348015339100       
D3   P00054350049100       
HP2519309005224HWA8365C    DEFORD              DONITA         1245327121     1184950479                    2012699     0 201911052019110514       0       
D1   D00904667840315       
HP2519309005132HWA8365C    DEFORD              DONITA         1245327121     1184950479                    2012699     0 201911052019110514       0

是的,请附上

样本输出

4

1 回答 1

0

我通过为所有字段创建变量解决了这个问题,所以我的条件如下 (IIF(LTRIM(RTRIM(SUBSTR(HEADER_INFO,2,13)​​))='',v_v_ICN,LTRIM(RTRIM(SUBSTR(HEADER_INFO,2 ,13))))) (IIF(LTRIM(RTRIM(SUBSTR(HEADER_INFO,15,12)))='',v_v_MBR_ID,LTRIM(RTRIM(SUBSTR(HEADER_INFO,15,12)))))

于 2020-07-18T08:16:46.283 回答