Sql server 用特定字符替换特殊字符的T-SQL查询

Sql server 用特定字符替换特殊字符的T-SQL查询,sql-server,tsql,special-characters,Sql Server,Tsql,Special Characters,我正在使用SQL Server 2014,我有以下T-SQL查询: 上述代码应在[Name]列中用*替换其中提到的所有字符 当我运行查询时,我仍然从[Name]列获得如下记录: Alex / Sandrine SINNOF / VAN ACK Peter / Jane KELLY 预期成果: Alex * Sandrine SINNOF * VAN ACK Peter * Jane KELLY 我在这里做错了什么?如评论中所述,这实际上是一个印刷错误,因为您一直在引用p1.[name],因此

我正在使用SQL Server 2014,我有以下T-SQL查询:

上述代码应在[Name]列中用*替换其中提到的所有字符

当我运行查询时,我仍然从[Name]列获得如下记录:

Alex / Sandrine SINNOF / VAN ACK
Peter / Jane KELLY
预期成果:

Alex * Sandrine SINNOF * VAN ACK
Peter * Jane KELLY

我在这里做错了什么?

如评论中所述,这实际上是一个印刷错误,因为您一直在引用p1.[name],因此最终您只删除了@、&、和、,。您需要引用p2.[name],p3.[name]等:

选择p9。[名称] 来自dbo。[CleanGuestNames]p外部应用 选择replacep.[Name]、'@'、'*'作为[Name]应用 选择replacep1.[Name]、'&','*'作为[Name]p2外部应用 选择replacep2.[Name]、“\”、“*”作为[Name]p3外部应用 选择replacep3.[Name]、“?”、“*”作为[Name]p4外部应用 选择replacep4.[Name]、“/”、“*”作为[Name]p5外部应用 选择replacep5.[Name]、':'、'*'作为[Name]p6外部应用 选择replacep6.[Name]、“;”、“*”as[名称]第7页外部适用 选择replacep7.[Name]、'..、'*'作为[Name]p8外部应用 选择replacep8.[Name]、'、'*'作为[Name]p9; 但是,我个人建议嵌套所有替换函数:

选择R.[名称] 来自dbo.CleanGuestNames CGN 交叉应用值替换[name],“@',“&',“\”,“?”,“/”,“:”,“,”;“,”,“,”,“,”,“,”,“,”,R[姓名]; 如果您使用的是受支持的SQL Server版本,则可以使用TRANSLATE使其更加简洁:

选择T.[名称] 来自dbo.CleanGuestNames CGN 交叉应用值替换translatep.[name],“@&\?:;,,,,,,,,,,,,,,”,T[姓名];
因为您一直在替换p1.[Name],而不是p1.[Name],然后是p2.[Name],然后是p3.[Name]。不过,就个人而言,我建议只嵌套REPLACE函数。如果您使用的是完全受支持的SQL Server版本,那么翻译将是一个更好的选择。@Larnu非常感谢!我真傻!
Alex * Sandrine SINNOF * VAN ACK
Peter * Jane KELLY