我为自己所面对的问题找不到快速的解决方案感到有些惊讶,这似乎是一件很普通的事情。我无法摆脱选择查询中的尾随空格。我想将数据保存到一个csv文件中。如果很容易,我很乐意从SSMS复制/粘贴结果“文本结果”。无论哪种方式,我的查询都是:

declare @maxDate date = (select MAX(TradeDate) from tblDailyPricingAndVol)

select p.Symbol, ','
from tblDailyPricingAndVol p
where p.Volume > 1000000 and p.Clse <= 40 and p.TradeDate = @maxDate
order by p.Symbol

它返回:
A       ,
AA      ,
ABB     ,

等等。p.Symbol字段周围的Rtrim没有帮助。如果我能找到最好的解决方案,我将获得以下结果:
A,AA,ABB

等等。有没有人?一如既往地谢谢你..

最佳答案

从预期的结果来看,您似乎希望将所有行中的symbol值连接为一个逗号消除的字符串。
为此,您可以执行以下操作:-

DECLARE @str VARCHAR(MAX)
SELECT @str = COALESCE(@str+',' ,'') + LTRIM(RTRIM((p.Symbol)))
FROM tblDailyPricingAndVol p
WHERE p.Volume > 1000000 and p.Clse <= 40 and p.TradeDate = @maxDate
ORDER by p.Symbol
SELECT @str
GO
也可以引用其他替代方法here
关于您的RTRIM不起作用的问题,这似乎很奇怪。为了安全起见,我在上面的查询中添加了LTRIM + RTRIM。但是,只要您的symbol列是某种varchar,实际上就没有理由让RTRIM不起作用。
您可以澄清表中symbol列的数据类型吗?

10-08 12:44