后,我运行一个查询并查看输出,例如插入双引号到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