2013-12-19 24 views
-1

我有四根弦用分隔符「|」SQL分成表

accounts = '1|5|12|18' 
debit = '100|50|0|0' 
credit = '0|0|20|130' 
branches = '121|569|901|1002' 

而且必須插入到表列如下

+----------+-------+--------+----------+ 
| accounts | debit | credit | branches | 
+----------+-------+--------+----------+ 
| 1  | 100 | 0 | 121 | 
| 5  | 50 | 0 | 569 | 
| 12 | 0 | 20 | 901 | 
| 18 | 0 | 130 | 1002 | 
+----------+-------+--------+----------+ 

請幫助謝謝

+0

你會需要一個將返回表的字符串拆分函數。 引用此,http://stackoverflow.com/questions/2647/split-string-in-sql – KumarHarsh

+0

我已經定義了函數,但返回每個可能的組合(256),我只想返回這4條記錄。 您提供給我的鏈接只能使用一個字符串我不知道如何將它們全部合併 – Rodrigo

回答

0

從該鏈接查看使用dbo.fn_Split然後,

Declare @accounts varchar(200) = '1|5|12|18' 
Declare @debit varchar(200)= '100|50|0|0' 
Declare @credit varchar(200)= '0|0|20|130' 
Declare @branches varchar(200)= '121|569|901|1002' 
Declare @delim char(1)='|' 

insert into table1 
select a.value as accounts,b.value as debit,c.value as credit,d.value as branch from dbo.fn_Split(@accounts,@delim,null) a 
left join dbo.fn_Split(@debit,@delim,null) b on a.id=b.id 
left join dbo.fn_Split(@credit,@delim,null) c on a.id=c.id 
left join dbo.fn_Split(@branches,@delim,null) d on a.id=d.id