Sql 删除多个特定字符后的文本
我必须合并两个文本列,然后删除a/、或(、或单词“with”后面的所有文本 例如: 两列的组合如下所示: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
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并不重要,我使用它们只是为了加强我的示例。我现在将其插入到我的代码中并进行测试