虽然从带有where子句的sql获取数据集后,很容易替换代码中的搜索文本:
x = x.Replace("SearchText","<span style='color:RED'>SearchText</span>");
我想知道在SQL中是否有这种方法。
Select x.Replace("SearchText","<span class='highlight'>SearchText</span>") as x from t where x like '%SearchText%'
或类似的东西。
我问的原因是因为我做了:
COALESCE(LastName + ', ' + FirstName, LastName, FirstName) as Name
我不想要一个返回的姓名字段&#34; Bobbly,Bob&#34;在搜索包含&#34; Bob&#34;的LastName时获得两个突出显示的区域或包含&#34; Bob&#34;的FirstName (注意名字和姓氏有不同的搜索短语&#34;
是的,我可以单独返回两个字段并将它们加入代码中,但我只是想知道它是否可以在SQL中完成。
答案 0 :(得分:1)
T-SQL包含替换功能
REPLACE(string_expression,string_pattern,string_replacement)
那应该做你需要的事情
COALESCE(REPLACE(FirstName,'SearchText1','<span class=''highlight''>' + 'SearchText1' + '</span>')+','
+REPLACE(LastName,'SearchText2','<span class=''highlight''>'+'SearchText2'+'</span>')
,REPLACE(FirstName,'SearchText1','<span class=''highlight''>' + 'SearchText1' + '</span>')
,REPLACE(LastName,'SearchText2','<span class=''highlight''>'+'SearchText2'+'</span>')
,'')