以下查询返回两个字段(DATA1 和 DEPARTMENT),它们是 VARCHAR
SELECT DATO1 ,(SELECT DD.NombreDepartamento + ',' FROM CIALES AS CT INNER JOIN Departamento AS DD
ON CT.ID_DEPARTAMENTO = DD.IdDepartamento
ORDER BY CT.ID DESC
FOR XML PATH('') )
AS DEPARTAMENTO FROM TABLA
我遇到的问题是 DEPARTMENT 字段...正如您将看到的那样是一个子查询,并且使用“for xml path”我遍历结果,将它们连接起来并放置一个逗号...作为分隔符,但是问题是它还在最后一条记录中添加了逗号。
例如
返回 = a,b,c,d,e,
我想要 = a,b,c,d,e
我该怎么做?
如果我们将逗号放在开头而不是结尾,则使用STUFF函数更容易将其删除
STUFF
可以在给定位置和长度的字符串中插入和删除字符反过来,使用stuff函数删除第一个逗号:
所以:
东西
已编辑: 在对问题进行最后一次编辑后,答案不再适用。但我将留下答案,以防它在调整第三个参数方面对某人有所帮助,
stuff
具体取决于用于分隔元素的字符串。就将逗号移到开头并使用而言,其他答案
stuff
是完全正确的。我只想指定,根据你用来分隔元素的字符串的长度,你应该调整stuff
.例如,在您的情况下,
您使用的是' , '
(每边由 3 个空格包围的逗号),即 7 个字符。在这种情况下,您需要它
stuff
删除前 7 个字符,因此7
用作第三个参数: