Joa*_*kim 4 sql sql-server-2008
SELECT ft.ThreadTitle AS Title,
fr.ReplyText + ' ' + ua2.Username + ' ' + ft.ThreadText + ' ' +
-- THIS NEXT LINE IS WHAT I WANT TO ACHIEVE:
(Select ReplyText from ForumReply Where ThreadID=ft.ThreadID)
-- THE ABOVE LINE HAVE MULTIPLE ROWS/VALUES THAT I WANT TO JOIN INTO ONE VARIABLE. HOW?
AS [Content],
ss.Domain,
ss.SiteID,
ft.ThreadID AS ObjectId
FROM dbo.ForumReply AS fr INNER JOIN
dbo.ForumThreads AS ft ON fr.ThreadID = ft.ThreadID INNER JOIN
dbo.User_Account AS ua1 ON ft.CreateByUserID = ua1.UserID INNER JOIN
dbo.User_Account AS ua2 ON fr.ReplyUserID = ua2.UserID INNER JOIN
dbo.SysT_Site AS ss ON ua1.SiteID = ss.SiteID
Run Code Online (Sandbox Code Playgroud)
此查询给出错误: 子查询返回的值超过1.当子查询跟随=,!=,<,<=,>,> =或子查询用作表达式时,不允许这样做.
如何重写此查询以使我将所有值都放入一个变量中?最终结果必须是"View",如下所示:
.ObjectID int
.Content(包含Forumthread.threadText和forumReply.ReplyText中存在的所有文本的字符串)
.Domain字符串
.SiteID int
jfo*_*las 19
以马丁的评论为基础:
DECLARE @t TABLE (id int, ReplyText varchar(100))
INSERT INTO @t (id, ReplyText) VALUES (1, 'So Long,')
INSERT INTO @t (id, ReplyText) VALUES (2, 'And Thanks for')
INSERT INTO @t (id, ReplyText) VALUES (3, 'All of the Fish!')
SELECT (SELECT replytext + ' ' FROM @t FOR XML PATH('')) AS CONTENT
Run Code Online (Sandbox Code Playgroud)