Sql 删除多个特定字符后的文本

Sql 删除多个特定字符后的文本,sql,sql-server-2008,Sql,Sql Server 2008,我必须合并两个文本列,然后删除a/、或(、或单词“with”后面的所有文本 例如: 两列的组合如下所示: Select ,COALESCE(DT.Column1, '') + ' ' + COALESCE(M.Column2, '') AS Result1 from Table1 dt join Table2 M on dt.M_Id =M.id SomeResults SomeMoreResults AndMoreResults 结果集当前如下所示: SomeResults/Here So

我必须合并两个文本列,然后删除a/、或(、或单词“with”后面的所有文本

例如: 两列的组合如下所示:

Select ,COALESCE(DT.Column1, '') + ' ' + COALESCE(M.Column2, '') AS Result1
from Table1 dt
join Table2 M on dt.M_Id =M.id
SomeResults
SomeMoreResults
AndMoreResults
结果集当前如下所示:

SomeResults/Here
SomeMoreResults(here)
AndMoreResultsWITHthis
我需要它们看起来像这样:

Select ,COALESCE(DT.Column1, '') + ' ' + COALESCE(M.Column2, '') AS Result1
from Table1 dt
join Table2 M on dt.M_Id =M.id
SomeResults
SomeMoreResults
AndMoreResults
您可以使用
left()

注意:如果大写对于“
”和“
”都很重要,您可能还需要处理排序规则。

使用函数:

SELECT CASE
         WHEN Col LIKE '%/%' THEN SUBSTRING(Col, 1, CHARINDEX('/', Col)-1)
         WHEN Col LIKE '%(%' THEN SUBSTRING(Col, 1, CHARINDEX('(', Col)-1)
         WHEN Col LIKE '%WITH%' THEN SUBSTRING(Col, 1, CHARINDEX('WITH', Col)-1)
      END;

CAP并不重要,我使用它们只是为了加强我的示例。我现在将其插入到我的代码中并进行测试