【问题标题】:Replace single quote single quote just 1 single quote替换单引号单引号只是1个单引号
【发布时间】:2020-01-09 10:30:42
【问题描述】:

您好,我有一张表,其中一些地名已正确存储 例如,荷兰的一个地方存储为 OC A''dam Sloterdijk - 两个单引号而不是双引号,这需要使用单引号设置为 OC A'dam Sloterdijk

我试过了 set StoreNm = Replace(StoreNm, '''', ''') 但这只是删除了所有单引号,让我没有..

任何想法

【问题讨论】:

  • SQL 运行我真的很惊讶; 3 个单引号 (''') 应该导致未闭合的引号错误。

标签: sql-server replace


【解决方案1】:

将它们加倍:

replace(@a, '''''', '''')

【讨论】:

    【解决方案2】:

    你也可以这样做来替换双引号:

    UPDATE tableName SET ColumnName = REPLACE( ColumnName ,'\"','\\''); 
    

    编辑:

    替换双单引号:

    UPDATE tableName SET ColumnName = REPLACE( ColumnName ,'''''', '''')
    

    【讨论】:

    • OP 询问如何替换双单引号,而不是双引号。单个 \ 转义双引号 \",但您需要使用 \'\' 转义双引号。
    • 嗨@devedv 这似乎不起作用它会产生错误消息 Msg 102, Level 15, State 1, Line 8 '\' 附近的语法不正确。 Msg 105, Level 15, State 1, Line 13 字符串'order by Storenm, StoreNo'后的非闭合引号。我使用的代码是 update MyTable set MyColumn1 = REPLACE(MyColumn1, '\'\'' ,'\\'') where MyColumn2 = 'abc' and MyColumn3 = 'xyz';
    • 如果您要替换双单引号,请检查更新后的查询。
    【解决方案3】:

    用 2 替换 1 个单引号:

    replace(@command,char(39),char(39)+char(39))
    

    用 1 替换 2 个单引号:

    replace(@command,char(39)+char(39),char(39))
    

    【讨论】:

      猜你喜欢
      • 2017-12-29
      • 2021-08-12
      • 1970-01-01
      • 2011-05-11
      • 2018-11-18
      • 2018-05-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多