這是我擁有的數據的類型:T-SQL:從一個表插入到另一個數據不curosrs
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
將用於填充新表的一行,客戶端代碼,日期和金額來自上面給出的數據。行是DTM提供的日期,與行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'
這樣,我只是一行信息。
這不是我想在T-SQL中做的事情,如果我有選擇的話。 T-SQL沒有從字符串操作中得到很好的支持。 – 2012-04-19 22:25:28
我知道,對吧?我們遇到的事情是爲了生活。 :) – OBL 2012-04-19 22:27:23
您是將數據插入到其他表中還是更新現有行?如果是後一種情況,您應該能夠與表連接並直接從'@ Temp_Table'查詢更新相關列。 – mellamokb 2012-04-19 22:29:18