我有一个表:Task,另一个TaskHistory
1任务 - >许多任务历史
TaskHistory有一个名为“Comment”的字段。
我想从SQL返回一个字符串的所有任务历史记录注释,无论我传入的任何TaskId。
实施例: GetTaskHistory(@TaskId)
返回: '评论:一些评论\ r \ n评论:另一个评论\ r \ n \评论:还有一个'
我想知道从SQL返回它是否比我在应用程序中循环创建字符串的记录集更快。
这可能吗?
谢谢!
答案 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