我为自己所面对的问题找不到快速的解决方案感到有些惊讶,这似乎是一件很普通的事情。我无法摆脱选择查询中的尾随空格。我想将数据保存到一个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
列的数据类型吗?