使用 xml 将不同行的数据连接到一列时,如何删除 space?

How to remove space when concatenating data from different rows into one column using xml?

我正在尝试将不同行的数据合并到一列中,这只解决了一个小问题。

declare @RitID int = 16

select ...,

       ( select distinct
                ISNULL(LTRIM(RTRIM(r2.LotNr)), LTRIM(RTRIM(r.LotNr))) + '+' as 'data()'
         from   tblExtraBestemming eb2   
           inner join tblRit r2 on eb2.RitID = r2.RitID
         where  eb2.BestemmingID = eb.BestemmingID
         and    eb2.BestemmingTypeID = eb.BestemmingTypeID
         and    (  (eb.CombinedChildExtraBestemmingID is null and eb2.RitID = @RitID)
                   or
                   (eb.CombinedChildExtraBestemmingID is not null and eb2.RitID in (select r4.RitID from tblRit r4 where r4.MasterRitID = @RitID) )
                )
         for XML PATH('')
       ) as LotNr
from tblExtraBestemming eb
where ...

这 returns 列 LotNr 的正确数据,像这样

GTT18196
GTT18197
GTT18198+ GTT18199

现在我唯一的问题是结果中第三行 + 符号后的 space,我怎样才能摆脱它?

我期待这个结果

GTT18196
GTT18197
GTT18198+GTT18199

PS,其实每一行的末尾还有一个+,但是被客户端去掉了。我想我最好已经提到了这一点。

编辑
我查了下数据,没有space在数据的末尾和数据的开头

编辑
按照@Larnu

的建议更新了查询

编辑
如果我检查 table 中的数据,这就是结果

select '/' + r.LotNr + '/' from tblRit r where r.RitID in (50798, 50799)

COLUMN1 
------- 
/GTT18198/  
/GTT18199/  

所以在我看来数据前后都没有字符

只需从您的查询中删除 AS 'data()'(在上述情况下不需要)。

如果尾部 + 有问题,将其移至开头并使用 STUFF 函数从结果中删除第一个字符。