2014-11-08 103 views
0

我想从表T1的两列(c1,c2)获取值,然后将它们合并为(c3),然后插入合并值(c3)在一张新表T2中。它还检查第二列(c2)的长度,如果小于4个字符,则在(C2)的vlaue之前插入零。合并两个列的值并插入到另一个表中ms sql

源表:表 - T1


C1  | C2  

101  | 201 
    101  | 202 
    101  | 203 
    101  | 1101 
    101  | 1102 
    101  | 1103 
    102  | 221 
    102  | 222 
    103  | 2025 

所需表表 - T2


C3 

1010201 
    1010202 
    1010203 
    1011101 
    1011102 
    1011103 
    1020221 
    1020222 
    1032025 

回答

0
INSERT INTO T2 ([C1] ,[C2] ,[C3]) 
SELECT [C1] ,[C2] , 
    CONCAT([C1],'1400', 
     replicate('0', 4 - len(C2)) + cast (C2 as varchar)) as C3 
FROM T1 
WHERE [Eligible]='Yes' ORDER BY C1 ASC, C2 ASC 
1

如果您正在使用字符工作,那么试试这个:

insert into t2 (c3) (select if(char_length(c2)=4,concat(c1,c2),concat(c1,'0',c2)) from t1)