2016-12-07 5 views
0

Username = "Adam Hughes, Petro Camp"Email Addresses = "[email protected],[email protected]"のようなカンマ区切り文字を持つ2つの文字列があります。SQLの複数の行にコンマが挿入されています

テーブルのカラムにUsername ,Email Address, SourceId,DateStampがあるログ履歴を1つのテーブルに挿入します。

テーブルに1つの行:Adam Huges [email protected] 0 '2016-12-06'と次の行:Petro Camp [email protected] 0 '2016-12-06'を挿入します。

これを達成するには?これはC#で行うことができ、SQlデータベースにプッシュできますか?

+0

を必要としているINSERT文で他の列を追加する機能に上記の分割操作を抽出することにより、上記の冗長性を除去することができwork.But必要がありますどのデータベースとどの言語を教えてください。あなたがコード側またはSQLスクリプトでこれを行うには? – Swetha

答えて

0
DECLARE @USERNAME VARCHAR(MAX) = 'test1,test2'; 
DECLARE @EMAILID VARCHAR(MAX) = 'test6,testr3' ; 
DECLARE @lenuser INT; 
DECLARE @lenemailid INT; 
DECLARE @startIndex INT = 0; 
declare @indexemail INT = 0; 
DECLARE @endIndex INT; 
DECLARE @startEmailIndex INT = 0; 
DECLARE @endEmailIndex INT; 

WHILE @startIndex <= LEN(@USERNAME) AND @startEmailIndex <= LEN(@EMAILID) 
    BEGIN 
    SELECT @endIndex = charindex(',',@USERNAME,@startIndex); 
    SELECT @endEmailIndex = charindex(',',@EMAILID,@startEmailIndex); 
    if @endIndex = 0 
    begin 
    SELECT @endIndex = LEN(@USERNAME); 
    end 
    if @endEmailIndex = 0 
    begin 
    SELECT @endEmailIndex = LEN(@EMAILID); 
    end 
    INSERT INTO dbo.TABLE_1 VALUES(SUBSTRING(@USERNAME,@startIndex,@endIndex), SUBSTRING(@EMAILID,@startEmailIndex,@endEmailIndex)); 

    SELECT @startIndex = @endIndex +1; 
    SELECT @startEmailIndex = @endEmailIndex +1; 
    END 

これは、あなたが.Justは、あなたのテーブル名でのtable_1を交換し、

関連する問題