2011-02-10 9 views
0

私は、スペースで値をしているCOL3は、作成する必要があり、基本的抽出テーブルデータは、

col1  col2 col3 col4 
11  12  xx  20 
11  12  yy  20 
22  13  qq  21 
22  13  aa  21 

としてTSQLを使用してrequried

col1 col2 col3 col4 
11  12  xx yy 20 
22  13  qq aa 21 

私のTDDとしてテーブルデータを持っている値スペース値で区切られた各値の行。

おかげ prav

+0

のようなものを見たことがありますか? 2文字の後にスペースを入れ、次に2文字を追加しますか?もしそうなら、あなたのソリューションはかなりシンプルです - その3列目の部分文字列を使った2つの挿入。そうでない場合は、もう少し複雑な作業をする必要があります。スペースの両側の値を検索するために集計表を使用するようなものです。 – jlnorsworthy

答えて

2

は、第3列が一致している。この

DECLARE @Table TABLE(
     col1 INT, 
     col2 INT, 
     col3 VARCHAR(50), 
     col4 INT 
) 

INSERT INTO @Table SELECT 11,12,'xx yy',20 
INSERT INTO @Table SELECT 22,13,'qq aa',21 

;WITH Vals AS (
    SELECT *, 
      CAST('<d>' + REPLACE(col3, ' ', '</d><d>') + '</d>' AS XML) XMLCol 
    FROM @Table 
) 
SELECT Vals.*, 
     T.split.value('.', 'VARCHAR(MAX)') SplitValue 
FROM Vals 
CROSS APPLY 
     XMLCol.nodes('/d') T(split) 
+0

XMLでこれをコンパイルして実行するかどうかを知るには不十分です、それがしたら - いい仕事です! – jlnorsworthy

+0

これを試してみてください、それは実用的な解決策です** X - )** –