2017-02-03 6 views
0

я должен объединить два текстовых столбцов, а затем удалите весь текст после/или (или слово «с»Удалить текст после нескольких конкретных символов

Пример: Комбайн из двух столбцов выглядит это:

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 

ответ

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; 
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', вам, возможно, придется возиться с параметрами сортировки, а также.

+0

колпачки не важны, я использовал их только усилить свой пример. Я подключаю это в свой код и тестирую его – user1949329

Смежные вопросы