後,我運行一個查詢並查看輸出,例如插入雙引號到SQL輸出
select * from People
我的輸出如下
First Last Email
Ray Smith [email protected]
我怎麼會導出此數據,以便它看起來如下?
"Ray","Smith","[email protected]"
或者有沒有辦法在SQL中做到這一點,以修改記錄以包含引號?
因爲當你輸出時,無論如何都會包含逗號,對不對?
後,我運行一個查詢並查看輸出,例如插入雙引號到SQL輸出
select * from People
我的輸出如下
First Last Email
Ray Smith [email protected]
我怎麼會導出此數據,以便它看起來如下?
"Ray","Smith","[email protected]"
或者有沒有辦法在SQL中做到這一點,以修改記錄以包含引號?
因爲當你輸出時,無論如何都會包含逗號,對不對?
如果你感興趣的列是128個字符以內,你可以使用QUOTENAME功能。請注意這一點,因爲超過128個字符將返回NULL
。
SELECT QUOTENAME(First, '"'), QUOTENAME(Last, '"'), QUOTENAME(Email, '"')
FROM People
我想他希望輸出在一列中,用逗號分隔。 – Blindy 2011-06-06 14:55:44
@布林迪:目前尚不清楚。在這個問題中,OP聲明:「因爲當你輸出時,無論如何都會包含逗號」。 – 2011-06-06 14:57:20
@布林迪 - 我認爲他希望他們分開列。 – 2011-06-06 14:57:53
select '"'+first+'","'+last+'","'+email+'"'
from people
這是什麼樣的事情但是在代碼中最好的做法,你應該爲呈現不查詢。
修改包含引號的記錄將是一場災難;您不要僅將數據用於導出。此外,理論上你必須處理如下名稱:
Thomas "The Alley Cat" O'Malley
其中存在一些問題。
在標準SQL,你會使用翻番,達到單引號括單引號(與雙引號沒有特殊待遇):
'"Thomas "The Alley Cat" O''Malley"'
某些DBMS允許你使用字串,雙引號(以標準SQL中,雙引號表示一個「分隔標識符」; SQL Server使用方括號爲),在這種情況下,你可能會寫的字符串:
"""Thomas ""The Alley Cat"" O'Malley"""
通常情況下,雖然,你的出口工具提供CSV輸出格式你的SQL語句不需要工作關於它。嵌入式引號使其他問題成爲問題。事實上,你通常不應該讓DBMS處理數據的格式。
這個工作最適合我
SELECT 'UPDATE [dbo].[DirTree1] SET FLD2UPDATE=',QUOTENAME(FLD2UPDATE,'''')
+' WHERE KEYFLD='+QUOTENAME(KEYFLD,'''')
FROM [dbo].[Table1]
WHERE SUBSTRING(FLD2UPDATE,1,2) = 'MX'
order by 2
如果您正在使用MS SQL Server中,你可以試試:
SELECT '"'||Table.Column||'"'
FROM Table
- 請注意, 「選擇」 和「之間的第3個字符| |」是: ''''
- 字符在「||」結尾後是相同的......這樣你就可以在你的價值的每一面上得到一個「。
許多錯誤,你使用簡單的引號,然後雙引號,你說有空格,沒有......難以遵循。 – Fabien 2017-07-13 22:20:33
歡迎來到Stack Overflow。用四個空格縮進的行顯示爲代碼 - 作爲文字值。這很方便,你不必解釋哪些角色會去哪裏。 – 2017-07-13 22:32:56
現在編輯答案@Fabien如果需要更多的工作才能正確,請指出任何剩餘的錯誤。 – 2017-07-14 00:23:08
我不知道誰upvoted關於修改*記錄*包含引號的問題,所以它是「更容易」出口到CSV ... – Blindy 2011-06-06 14:51:58
出口到CSV - http://stackoverflow.com/questions/425379/how-to -export-data-as-csv-format-from-sql-server-using-sqlcmd – 2011-06-06 15:00:53
我同意@Bindy在他的評論中所暗示的含義:不要更改記錄以使導出爲CSV更容易。您將最終得到超過您討價還價的聲明,如 'select * from people where'Last'like''Ander%'''' 您的SQL風格是否會執行CSV導出?他們中的很多人都會這樣做,並且您會發現使用內置導出功能而不是自行滾動更容易。如果您使用的是Microsoft T-SQL,請查看http://www.sqlteam.com/forums/topic.asp?TOPIC_ID=87448以獲取導出爲CSV的腳本。 – rajah9 2011-06-06 15:08:58