SQL:在列中使用特定单词时需要隐藏它们-

SQL:在列中使用特定单词时需要隐藏它们-,sql,sql-server,reporting-services,reportbuilder,Sql,Sql Server,Reporting Services,Reportbuilder,我现在的问题是是否可以做一些事情,因此,在这个问题中没有包含任何代码。如果可以的话,我可以进一步询问和研究的正确短语是什么 我正在使用一个客户数据库,其中提出了一个请求,即如果在“评论”字段中使用了特定的单词,则在使用SSRS/report Builder查看报表和查询时,该单词将被替换或隐藏 我还想知道,是否可以编写一个表达式来隐藏或屏蔽该单词,然后在报告中使用的tablix字段中使用该表达式 如有任何建议,我们将不胜感激 数据库为Microsoft SQL 2016,带有SSRS 2017和

我现在的问题是是否可以做一些事情,因此,在这个问题中没有包含任何代码。如果可以的话,我可以进一步询问和研究的正确短语是什么

我正在使用一个客户数据库,其中提出了一个请求,即如果在“评论”字段中使用了特定的单词,则在使用SSRS/report Builder查看报表和查询时,该单词将被替换或隐藏

我还想知道,是否可以编写一个表达式来隐藏或屏蔽该单词,然后在报告中使用的tablix字段中使用该表达式

如有任何建议,我们将不胜感激


数据库为Microsoft SQL 2016,带有SSRS 2017和Report Builder 2016

如果有一个特定的词,那么答案很简单。您只需使用
replace()
。事实上,您可以将其添加到表中:

alter table t add safe_comments as (replace(comments, '<bad word>', 'XXXXXXX'));
alter table t将安全注释添加为(替换(注释,,'XXXXXXX');
通过嵌套
replace()
值,可以将其扩展到少数硬编码字

然而,我怀疑你的问题在于你有一个相当长的要替换的单词列表。如果是这样的话,这样一个简单的解决方案是行不通的


在SQL Server中,可以从给定注释中删除存储在表中的单词列表。这需要递归CTE(或用户定义的函数)。对于返回单个记录或少数记录,这可能具有可接受的性能。但是,对于扫描整个表来说,速度可能太慢。

您是否只是在MyTable中查找类似于
选择替换(MyColumn,'MyWord','')的内容
?如果符合您的需要,您可以查看动态数据屏蔽。对于SSR中的表达式,您可以使用
=REPLACE(Fields!COMMENTS.Value,“Bad Word”,“”)
类似于@Sami对SQL的处理。@JuanCarlosOropeza-我不认为模式、数据或预期输出有助于确定哪个函数将执行特定任务。如果您向我们展示一些示例数据和预期输出,我可以告诉您使用哪个函数。否则,我会猜你为什么想要。我不会浪费时间去猜测。很抱歉在回复上出现了极大的延误。这非常有效,我非常感谢大家的投入。让我的日子轻松多了。