2017-07-12 84 views
1

我從一個SQL視圖(SQL Server 2005中)與SQL作業到CSV文件導出數據:SQL視圖導出爲CSV通過SQLCMD - Excel格式的數字從varchar領域到指數的語法

sqlcmd -W -s ";" -E -d master -Q "SET NOCOUNT ON; SELECT * FROM [DB].[NameOfView];" -o "\\Location\File.csv" 

在sql視圖是一個字段(類型爲Varchar(20)),其中的數字通常長於15個字符。對於這個領域我只是一個簡單的聲明:

SELECT Fieldname AS Name FROM DB 

......沒什麼特別的。

當我打開CSV文件Excel文件格式與長數場與指數的語法格式爲:

enter image description here

是否存在編輯查詢或SQLCMD工作話要說方式excel不這樣做?我正在考慮將結果定義爲文本而不是sql中的數字或類似的東西(但它已經是一個varchar字段,並且我還嘗試了''''+ Fieldname等等... -.-)

我無法改變excel中的內容,因爲很多人都應該訪問csv - 否則他們都必須在excel中進行設置。

他們應該打開CSV,一切都看起來很好!(:

感謝您的幫助/想法

回答

1

確實

SELECT '"' + Fieldname + '"' AS Name FROM DB 

只工作,不應該導致雙引號出現在? .csv和Excel將其視爲文本。

編輯:嘗試

SELECT '"=""' + Fieldname + '"""' AS Name FROM DB 

(上面的答案假設雙引號不需要在SQL字符串中進一步轉義,因爲它使用單引號作爲文本文字,所以如果沒有喜悅就檢查它。你的目標是爲它看起來像

「=」「0.00000014567897354354」「」

在CSV

又見https://superuser.com/questions/318420/formatting-a-comma-delimited-csv-to-force-excel-to-interpret-value-as-a-string

+0

它,但後來我也看到在Excel報價例如:'1138024010424772' – Starburst

+0

嘗試SELECT''=「」'+ Fieldname +'「」「'AS Name FROM DB – BenTaylor

+0

完美,謝謝:-)在excel中,字段顯示整數,但沒有指數語法 – Starburst