使用SQL替换表中的引号字符

时间:2016-03-15 10:39:49

标签: sql-server replace find

我正在尝试使用MSSQL进行简单的查找和替换查询,但是查询在不删除字符的情况下运行。我想要查询而不必在每行中列出唯一数据。

当前行

    Number 
    ''12454545''
    ''12454''
    ''1895622''
    ''9846252''

请求输出

    Number 
    12454545
    12454
    1895622
    9846252

因此我只需要从每行的值中删除('')。 Excel中的查找和替换功能正是此处所需的原则。

以下是我尝试过的两个成功运行的查询,但它没有删除('')。

UPDATE [Table]
SET [Number] = REPLACE([Number], '''', '')

SELECT REPLACE([Number], '''', '') FROM [Table]

有什么建议吗?

4 个答案:

答案 0 :(得分:2)

好的,我认为您可以在查询之前使用SET QUOTED_IDENTIFIER OFF -

SET QUOTED_IDENTIFIER OFF;

UPDATE [Table]
SET [Number] = REPLACE([Number], "'", "")

SET QUOTED_IDENTIFIER ON;

答案 1 :(得分:2)

您对我的评论的回复表明您正在处理ASCII字符34,这是一个简单的双引号(“),而不是您尝试用当前代码替换的单引号('字符39)。

而是尝试:

RecyclerView

或者,更明显:

UPDATE [Table] SET [Number] = REPLACE([Number], '"', '')

答案 2 :(得分:1)

试试这个:

UPDATE [Table]
SET [Number] = REPLACE([Number], '"', '')

这基本上与替换两个'相同,因为每个人都有'将被替换。

我不确定为什么它不起作用,但我可以猜到它,因为SQL-SERVER如何处理字符串中的引号和'''''''''''''''与''相同,因此当您输入单独的引号时,它将被识别。

答案 3 :(得分:0)

尝试

UPDATE [Table]
SET [Number] = REPLACE(REPLACE([Number],'''',''),'"','')