【问题标题】:SSMS - Removing Ampersand & Characters [closed]SSMS - 删除&符号和字符[关闭]
【发布时间】:2021-07-23 09:43:08
【问题描述】:

如果我运行以下命令,& 值将被替换为 and

select 
     replace('Difference_between_desired_date_&_generic_window float', '&', 'and') as [col_1]

如果我运行以下命令,则 & 不会被替换,即使我的第一个示例中的相同值在列中(我实际上是从我的第一个示例的列中复制了它):

select 
     replace([column_with_my_value], '&', 'and') as [col_2]

这是为什么?

【问题讨论】:

  • 不知道我们为什么要投票结束这个......
  • 我的猜测是缺少 minimal reproducible example - 你能创建一个 dbfiddle 吗?
  • 我的意思是,这是一个非常简单的例子,不是吗?我想通了,但是您基本上只需要为第二部分进行选择即可重现整个示例,我错了吗?
  • 什么是列排序规则?
  • @LunchBox 嗯,不,请在您的答案下方查看我的小提琴 - 这就是为什么需要 minimal reproducible example

标签: sql-server tsql ssms


【解决方案1】:

我需要转义 & 字符。

替换这个:

select 
     replace([column_with_my_value], '&', 'and') as [col_2]

有了这个:

select 
     replace([column_with_my_value], '\&', 'and') as [col_2]

它工作正常,但我不确定为什么它适用于 1 而不是另一个。

【讨论】:

  • 这没有任何意义,显然发生的事情比您解释的要多,请参阅this fiddle 预期代码在哪里有效而您的修复无效。
  • 没有更多的事情发生。我有一列(col_2)中有一堆值(col_1),底部替换功能有效。我不知道为什么,但我想这是因为需要进行一些转义?
猜你喜欢
  • 2014-12-06
  • 1970-01-01
  • 2015-11-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多