这是我拥有的数据类型:
ENT*2*2J*EI*A25530181
NM1*IL*1*DOBIAS*ROSE*M
RMR*AZ*10100314**362.45
DTM*582****RD8*20120301-20120331
ENT*3*2J*EI*A54700554
NM1*IL*1*LOMBARDO*LUIS*J
RMR*AZ*10100314**362.45
DTM*582****RD8*20120301-20120331
情况是我需要从每一行中提取信息并用它填充另一个表。所以就像从 ENT 开始的行一样,我需要代码 A25530181 并将其放入另一个表中。我已经掌握了提取信息的所有逻辑。只需要弄清楚如何将它放入另一个没有游标的表中。此表中前 4 行的信息将成为新行中的一行。所以
ENT*2*2J*EI*A25530181
NM1*IL*1*DOBIAS*ROSE*M
RMR*AZ*10100314**362.45
DTM*582****RD8*20120301-20120331
将用于使用上面给出的数据中的客户代码、日期和金额填充新表的一行。Row is DTM 提供日期,row with RMR 提供费率。我有逻辑来提取信息。只需要帮助将其放入没有光标的新表中。
这是示例逻辑:
SELECT @Asterisk1Pos = CHARINDEX(@Delimeter, REVERSE(DATA)) - 1
from @TEMP_TABLE
WHERE LEFT(DATA,3) = 'ENT'
SELECT TOP 1 RIGHT(DATA, @Asterisk1Pos)
from @TEMP_TABLE
WHERE LEFT(DATA,3) = 'ENT'
这样我只有一行的信息。