Sql 查询返回每个返回项的尾随空白字符

Sql 查询返回每个返回项的尾随空白字符,sql,sql-server-2008,substring,Sql,Sql Server 2008,Substring,我在SQL select语句中包含以下内容。它的目的是查询大量结果,并让它们以逗号分隔返回 SUBSTRING(( SELECT ', ' + s.jaopr FROM jjops s WHERE s.jajob = o.jajob ORDER BY s.jaseq FOR XML PATH('') ), 2, 1000) 我正在得到我需要的结果,但是每个结果中的字符数从2个字符到5个字符不等。因此

我在SQL select语句中包含以下内容。它的目的是查询大量结果,并让它们以逗号分隔返回

SUBSTRING((
        SELECT ', ' + s.jaopr
        FROM jjops s
        WHERE s.jajob = o.jajob
        ORDER BY s.jaseq
        FOR XML PATH('')
        ), 2, 1000)
我正在得到我需要的结果,但是每个结果中的字符数从2个字符到5个字符不等。因此在结果中会返回额外的空格。
例子:
AA、AAA、BBBBB、BBBB、CCCCC

当返回的结果少于5个字符时,如何更改我的子字符串以使没有多余的空格


我想我理解
子字符串是什么,但我不太理解
XML路径的作用,因为我在搜索解决方案时复制了它。

XML路径的常用用法,就像您在这里使用它一样(尝试在引号中加上类似“value”的东西,以获得它真正预期用途的提示)是将一些通常为若干行的结果集连接到一行中,其中所有结果都在一个字符串中

在这种情况下,这里应该发生的是substring函数应该返回内部查询的整个结果,从第二个字符到1000个字符。其效果是,如果您在上面的select语句中有五行结果,并且末尾没有XML路径,则如下所示:

A
B
C
D
E
XML Path命令应该为您提供 ,A,B,C,D,E

注意逗号后面的空格。似乎你想用子串来去掉第一个逗号,但是这不会消除中间逗号后面的空格。

如果我对这些假设是正确的,那么也许只要删除逗号周围引号中的空格就可以得到你想要的效果


但是,您可以像这样检查线程,以进一步了解实现这一点的公认方法。

是否希望数据库中存储的值不带尾随(和/或前导)空格?如果是这样的话,这个问题已经在这里得到了回答:


我发现我的数据库存储了尾随空格。这将引导我找到解决方案,谢谢!