2016-04-14 21 views
1

私はSQL Server 2008 R2を使用しています。SQL:すべての行の列の値を単一の値として取得する方法は?

これが私のテーブルです:

CREATE TABLE step 
(
    id int IDENTITY(1,1) NOT NULL PRIMARY KEY, 
    step_value nvarchar(max) NOT NULL 
) 

は現在、197行がstep表にあります。私はstep_value列のすべての値をセミコロン区切り文字で単一の値として取得したいと考えています。どうやってやるの?

いくつかのサンプルデータ:

Insert Into step(step_value) 
Values ('a'),('b'),('c'),('d'),('<workflow name="DISCIPLINE_LETTER">'), (' <target>MEETING_INITIAL_MEETING_LETTER</target> ') 

おかげ

答えて

0

使用STUFF機能

select stuff(
(select '; ' + step_value 
from step 
for xml path(''), root('MyString'), type 
).value('/MyString[1]','nvarchar(max)') 
, 1, 2, '') as step_values ; 

FIDDLE

+0

、これは動作しませんでした。ありがとうございます。 – srh

+0

しかし、私は< and >のような文字を列に持っていて、それは<と>に翻訳されているので動作しません。私は正確な値が必要です – srh

+0

@srh私のフィドルでサンプルデータを追加します – Mihai

0
SELECT TOP 1 (STUFF((SELECT ', ' + CAST(id AS VARCHAR(MAX)) 
     FROM step 
     FOR XML PATH ('')), 1, 2, '')) AS a 
FROM step 
関連する問題