我必须合并两个文本列,然后删除/,或(或单词“with”之后的所有文本
实施例: 两列的组合看起来像这样:
Select ,COALESCE(DT.Column1, '') + ' ' + COALESCE(M.Column2, '') AS Result1
from Table1 dt
join Table2 M on dt.M_Id =M.id
结果集目前看起来像这样:
SomeResults/Here
SomeMoreResults(here)
AndMoreResultsWITHthis
我需要它们看起来像这样:
SomeResults
SomeMoreResults
AndMoreResults
答案 0 :(得分:1)
使用SUBSTRING功能:
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;
答案 1 :(得分:0)
您可以使用left()
:
select (case when col like '%/%' and col not like '%WITH%/%'
then left(col, charindex('%/%', col)) - 1
when col like '%WITH%'
then left(col, charindex('%WITH%', col)) - 1
else col
end) as newcol
注意:如果上限对于'WITH'
很重要,您可能也需要使用排序规则。