32

以下のようにデータが保存されたテーブル サンプルがあります

Id   | String
--------------
1     abc,def,ghi
2     jkl,mno,pqr

私は..のような出力が必要です

Id   | processedrows
--------------
1     abc
1     def
1     ghi
2     jkl
2     mno
2     pqr

SQL Server の選択クエリで同じことを行うにはどうすればよいですか?

4

5 に答える 5

54

これを試して

 SELECT A.[id],  
     Split.a.value('.', 'VARCHAR(100)') AS String  
 FROM  (SELECT [id],  
         CAST ('<M>' + REPLACE([string], ',', '</M><M>') + '</M>' AS XML) AS String  
     FROM  TableA) AS A CROSS APPLY String.nodes ('/M') AS Split(a); 

ここを参照してください

http://www.sqljason.com/2010/05/converting-single-comma-separated-row.html

于 2012-12-14T06:30:53.987 に答える
0

以下のスクリプトを試してみましょう:-

declare @str varchar(max)

SELECT @str = isnull(@str +',', '') + a.Value
FROM (SELECT Value Entityvalue from Table) a

select @str
于 2014-07-25T13:26:42.850 に答える
0

これで試してみてください。出力が得られます。

SELECT id,
PARSENAME(REPLACE(Split.a.value('.', 'VARCHAR(100)'),'-','.'),1) 'Values' 
FROM  
(
     SELECT algorithms,
     CAST ('<M>' + REPLACE(string, ',', '</M><M>') + '</M>' AS XML) AS Data 
     FROM   <TableName> 
) AS A 
CROSS APPLY Data.nodes ('/M') AS Split(a)
于 2015-04-17T13:09:41.350 に答える