我有产生以下结果在一列连接多个行
NAME WeekPattern
John Smith
John Smith //
John Smith OO
Jack Jones
Jack Jones O
Jack Jones //
查询有没有一种方法我可以连接的WeekPattern列,这样的结果将显示如下:
NAME WeekPattern
John Smith // OO
Jack Jones O //
我曾尝试使用FOR XML PATH但无法使其正常工作,下面是查询我的尝试:
SELECT
p.p_surname,
p.p_forenames,
LEFT(sr.sr_weekpattern , LEN(sr.sr_weekpattern)-1) AS Weekpattern
FROM
unitesnapshot.dbo.capd_studentregister sr
INNER JOIN unitesnapshot.dbo.capd_person p ON p.p_id = sr.sr_student
CROSS APPLY
(
SELECT sr.sr_weekpattern + ' '
FROM unitesnapshot.dbo.capd_studentregister sr1
INNER JOIN unitesnapshot.dbo.capd_person p1 ON p1.p_id = sr1.sr_student
WHERE p.p_id = p1.p_id
FOR XML PATH('')
) pre_trimmed (Weekpattern)
GROUP BY p.p_surname, p.p_forenames, sr.sr_weekpattern;
运行此查询时出现此错误:
传递给LEFT或SUBSTRING函数的长度参数无效。
任何帮助会根据您现有的查询非常感激
这个答案的作品,但只有半秒钟,然后它给出了错误:无效的长度参数传递给左或SUBSTRING函数。 – Will 2013-02-28 15:39:43
@如果你删除'WHERE p.p_id = p1.p_id',子查询是否会自行工作? – Taryn 2013-02-28 15:41:39
没有仍然不工作,相同的错误 – Will 2013-02-28 15:43:22