返回SQL的一个到多个值的字符串

时间:2010-09-25 23:22:24

标签: tsql

我有一个表:Task,另一个TaskHistory

1任务 - >许多任务历史

TaskHistory有一个名为“Comment”的字段。

我想从SQL返回一个字符串的所有任务历史记录注释,无论我传入的任何TaskId。

实施例: GetTaskHistory(@TaskId)

返回: '评论:一些评论\ r \ n评论:另一个评论\ r \ n \评论:还有一个'

我想知道从SQL返回它是否比我在应用程序中循环创建字符串的记录集更快。

这可能吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

这是可能的,但我建议在应用程序中保留格式并简单地从SQL返回数据。然而,这是我对如何分离应用程序的看法。

SELECT Comment
FROM TaskHistory
WHERE TaskID = 1

要将列结果连接成字符串,您可以执行以下操作:

DECLARE @HistoryComments nvarchar(MAX) 

SELECT @HistoryComments = COALESCE(@HistoryComments + ' \r\n ', '') + Comment
FROM FROM TaskHistory
WHERE TaskID = 1

SELECT TaskHistorys = @HistoryComments