突出显示搜索阶段IN sql

时间:2014-04-14 19:07:57

标签: c++ css sql sql-server vb.net

虽然从带有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中完成。

1 个答案:

答案 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>')
        ,'')