1

以下のように、SQL Server テーブルに 2 つの行があるとします。

Id  Name    Address
---------------------
1   Kamal   Kathmandu
2   Rahul   Pokhara

この 2 つの行をこのように 1 つの文字列に格納したいのですが、

1,Kamal,Kathmandu@2,Rahul,Pokhara
4

5 に答える 5

2
DECLARE @xml XML = (SELECT *,'@' as Sep FROM YourTable FOR XML PATH(''))

SELECT Replace(Replace(stuff((SELECT ',' + node.value('.', 'varchar(max)')
              FROM   @xml.nodes('/*') AS T(node)
              FOR XML PATH(''), type).value('.','varchar(max)')
              , 1, 1, ''),',@,','@'),',@',''); 
于 2013-05-22T09:38:08.703 に答える
1

わかりました、これは悪い考えです。あなたは何か間違ったことをしていますが...

DECLARE @badIdea nvarchar(max);
SET @badIdea = '';

SELECT @badIdea = @badIdea + 
           STR(Id) + N',' +
           Name + N',' + 
           Address + N'@'
    FROM SomeTable;

IF @@ROWCOUNT > 0
    SET @badIdea = SUBSTRING(@badIdea, 0, LEN(@badIdea) - 1);

SELECT @badIdea;
于 2013-05-22T09:46:40.567 に答える
1
DECLARE @ResultString varchar(max)
SET @ResultString = ''


SELECT @ResultString = @ResultString + cast(Id as varchar) + ',' 
                       + Name + ',' + Address + '@'
FROM yourTable

SELECT @ResultString

@ResultString には、カンマで区切られた単一の文字列 1,Kamal,Kathmandu@2,Rahul,Pokhara が含まれます

于 2013-05-22T09:45:24.743 に答える