Excel对单元格值中的引号或撇号进行转义

29

我从客户的Excel电子表格中获得了很多数据库信息。我经常需要将这些数据插入/更新到数据库中。

我通常使用Excel通过连接一些单元格来生成插入和更新语句。有时,数据包括文本单元格,其中可能会有单引号。如果不小心处理,这些单引号将使SQL语句出错。

在连接一些单元格值时,如何通过公式转义文本数据中的单引号,以便我的结果SQL脚本是有效的?


我把这个放在这里是因为我总是忘记(虽然现在可能不会了...)而且无法快速找到答案。 - Mir
相关:如果您正在尝试使用VBA进行替换操作,这个问题可能会对您有所帮助。http://stackoverflow.com/questions/17430938/excel-escaping-single-and-double-quotes - Mir
1
有时候我不想改变单元格中的实际值...但很多时候,仅限于单个列或其他的查找/替换已经足够了。 - Mir
4个回答

43

我找到的最佳解决方案是使用以下内容:

=SUBSTITUTE(A1, "'", "''")

这将把所有单引号替换为两个单引号,这在T-SQL语句中会转义该字符并将其视为字符串数据。


5

我需要做类似的事情,以便我可以“转义”双引号:

=CONCATENATE(CHAR(34),"hello",CHAR(34))

结果:

在这里输入图片描述


1
类似于罗兰:
=SUBSTITUTE(SUBSTITUTE(A1, "'", "\'"), ",", "\,")

-1

使用双引号与CONCATENATE一起使用只需要转义引号。具体操作如下:

=CONCATENATE("""";"In quotes!";"""")

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接