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
對不起,我仍然不知道字符串是如何被截斷的。 –