2011-09-06 60 views
0

問題出在這裏。我在SQL Server Management Studio中運行查詢。我點擊「將結果另存爲...」並將文件另存爲CSV。當我打開CSV文件(使用記事本或任何文本編輯器)時,每列都添加了尾部空格,以使它們具有統一的寬度。這是非常令人沮喪的,因爲當我用Excel打開文件時,它會自動將字段轉換爲列,將帳號等更改爲科學記數法。如何在導出到csv時從SQL Server 2008查詢中刪除尾隨空格?

使用SQL Server 2005,沒有添加尾隨空格,所以Excel只將所有數據放在一個列中。然後我可以將文本轉換爲列,並將每一列指定爲文本。但是我的公司已將我切換到SQL Server 2008,現在獲得正確格式的唯一方法是將CSV導入到Access中,在Access中運行Trim函數(並因此更改字段名稱)以除去空格,然後導出從Access到Excel。請幫忙!!!爲什麼SQL Server 2008添加了尾隨空格,以及在哪裏可以停止?

已解答:請參閱下面的答案。

+0

請注意,尾隨空格獲取添加導出爲CSV文件後。它們不存在於SQL Server的結果集中。它們存在於生成的CSV文件中。 –

回答

0

雖然爲什麼一個CSV通過創建我還沒有想出Excel中的SQL Server 2008的行爲與在SQL Server 2005中創建的行爲不同,我發現瞭解決我眼前的問題的方法。

首先,尾隨空格似乎不成問題。但是,SS2008在SS2005沒有的地方添加了它們,這很煩人。但這不是我的問題的主要原因。

當右鍵單擊生成的CSV文件,然後單擊打開方式 - > Excel時,它會自動格式化爲格式不正確的列(其中SS2005的CSV文件打開並顯示單列中的所有數據)。爲了解決這個問題,我只需打開Excel,然後在Excel中打開CSV文件。這給了我缺少的列格式化對話框。

3

你可以只使用LTRIM和SQL RTRIM修剪的結果,所以你的結果集不包括後面的空格...

 

select ltrim(rtrim(field) as trimmedField from table 
 
+0

這沒有幫助。直到我導出爲CSV後,空格纔會存在於結果集中。 SQL Management Studio窗口中的結果集沒有空格。 –

+0

,但你說你把CSV文件存取以擺脫尾隨空格,在你將它導出到excel之前,所以它不會導出到excel,而是把空格。你可以在文本編輯器(如記事本)中打開CSV文件(在你從sql server中保存後),看看裏面是否有空格? –

+0

是的 - 如果我在記事本中打開文本文件有尾隨空格。但在SQL Server中,我看不到尾隨空格。而且,如果我在SQL Server 2005中運行完全相同的查詢,則不會發生此問題。 CSV文件中沒有添加空格。 –

相關問題