2

私はSQLに関するテーブルを持っています:

ID    User       Observation
========================================
1     John       This is correct!
----------------------------------------
2     Michael    I got an error!
----------------------------------------
3     Joshua     This is incorrect!
----------------------------------------

私が欲しいのは、文字列のデータを含むvarcharを返す関数tharです。

このような:

編集: これは私が期待する結果です:

John says: This is correct!\r\nMichael says: I got an error!\r\nJoshua says: This is incorrect

それを行う方法はありますか?

4

4 に答える 4

7

単一の列と単一の行として、これを行うことができます

DECLARE @out as varchar(max)

SET @Out = ''

SELECT @Out = @Out +  [User] + ' says: ' + Observation + CHAR(13) + CHAR(10)  
FROM Table1

SELECT @out

こちらをご覧ください

これがSSMSでの出力です(テキスト出力を使用)

-------------------------------
John says: This is correct!
Michael says: I got an error!
Joshua says: This is incorrect!

(1 row(s) affected)
于 2012-04-19T20:08:44.880 に答える
4

キャリッジリターン+改行で区切られたすべての行を連結する場合:

declare @UserObservation Table(ID int, [User] varchar(20), Observation varchar(100));
insert into @UserObservation values(1, 'John' ,'This is correct!');
insert into @UserObservation values(2, 'Michael' ,'I got an error!');
insert into @UserObservation values(3, 'Joshua' ,'This is incorrect!');

DECLARE @WhatAllUserSay VARCHAR(8000) ;
SELECT @WhatAllUserSay = 
    COALESCE(@WhatAllUserSay + CHAR(13) + CHAR(10), '') + [User] + ' says: ' + Observation 
FROM @UserObservation

PRINT @WhatAllUserSay;

COALESCE

出力:

John says: This is correct!
Michael says: I got an error!
Joshua says: This is incorrect!
于 2012-04-19T20:02:03.440 に答える
0

SELECT [User] +'は次のように言います:' + [Observation] FROM [TableName]

于 2012-04-19T20:02:37.813 に答える
0
SELECT User +' says: ' + Observation AS USER_SAID
FROM TABLE;
于 2012-04-19T20:02:49.290 に答える