我在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个字符时没有多余的空格?
我想我理解Substring
是什么,但我不太明白XML PATH
的作用,因为我在搜索解决方案时将其复制了。
答案 0 :(得分:0)
通常使用XML Path,因为你似乎在这里使用它(尝试在引号中添加类似“值”的东西以获得它的真正意图用途的提示)是连接一些通常是一些的结果集行数,所有结果都在一个字符串中的单行。
在这种情况下,这里应该发生的是,substring函数应该返回内部查询的整个结果,从第二个字符到一千个。结果是,如果你在上面的select语句中有五行结果,那么结尾处没有XML路径,如下所示:
A
B
C
D
E
XML Path命令应该给你 ,A,B,C,D,E
注意逗号后面的空格。看起来您正在尝试使用子字符串来删除第一个逗号,但这不会消除中间逗号后面的空格。
如果我对这些假设是正确的,那么或许只是删除逗号周围引号内的空格会给你带来你想要的效果。
但是,您可以检查this one之类的线程,以便进一步阅读有关实现此目的的可接受方法。
答案 1 :(得分:0)
您是否希望存储在数据库中的值没有尾随(和/或前导)空格?如果是这样,那个问题已在这里得到解答: