在最近的一篇文章中,Sql server rtrim 不适合我,有什么建议吗?,我得到了一些很好的帮助,可以从选择查询中获取 csv 字符串。虽然它的行为出乎意料,但我找不到任何类似的示例或文档。该查询返回 802 条记录,但没有使用 coalesce 语句,作为普通选择。通过合并,我只返回 81。如果我输出到文本或输出到文件,我会得到相同的结果。此查询返回 800 多行:
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