0
在最近的一篇文章Sql server rtrim not working for me, suggestions?中,我得到了一些很好的帮助从选择查询中获取csv字符串。尽管如此,它的表现还是出乎意料,我也找不到任何类似的例子或文档。该查询返回802个没有coalesce语句的记录,作为正常选择。随着合并,我回来了只有81.如果我输出到文本或输出到文件,我会得到相同的结果。该查询返回800+行:COALESCE截断连接输出
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
但是,当我试图来连接这些价值观,很多缺失:
declare @maxDate date = (select MAX(TradeDate) from tblDailyPricingAndVol)
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
由于XML可以设置为允许无限长,因此您还可以使用'select @str as for XML PATH'作为[processing-instruction(x)]。 (PI位是为了防止entitisation) –
谢谢亚伦。虽然我得到了同样的问题......也许我的问题应该是“什么是将字符串转换为csv格式的最佳方式?”我选择“文件结果”,然后将其作为csv打开。它在Excel中打开,每个符号(记录)都在一列中,但列表仍然比预期的要短。 – StatsViaCsh
对不起,我仍然不知道字符串是如何被截断的。 –