2017-02-02 2 views
1

У меня есть таблица, где в столбце [English] иногда есть данные, содержащие слово «to».Как удалить первые три символа столбца, если они содержат слово «to»?

Как удалить «в» из полей только в тех строках, которые у него есть. Так что, например:

to eat 

станет

eat 
+0

Вы желая делать это только до значений, которые начинаются с 'в' или все, что имеет 'в' в нем? Ваш конфликт вопросов и заголовков. – Siyual

+0

Мне хотелось бы только делать строки, где столбец начинается с «до». Извините, я не очень понял этот вопрос. –

ответ

5

Один из способов заключается в использовании материал:

SELECT CASE WHEN ColumnName LIKE 'to %' THEN 
      STUFF(ColumnName, 1, 3, '') 
     ELSE 
      ColumnName 
     END As ColumnName 
FROM TableName 

Другой вариант заключается в использовании правой с Леном:

SELECT CASE WHEN ColumnName LIKE 'to %' THEN 
      RIGHT(ColumnName, LEN(ColumnName) - 3) 
     ELSE 
      ColumnName 
     END As ColumnName 
FROM TableName 
+0

Прошу прощения за то, что я не упоминал об этом, но хочу только изменить «на», если он появляется в начале текста в столбце. –

+1

И это мой ответ. –

+0

хорошо, спасибо –

0
select case when CHARINDEX('to',column,0) = 0 then column 
     else replace(column,'to ', '') end as column --there is one space after 'to ' 

FROM TABLE 
WHERE --specify which rows here 
+0

, если значение столбца «для меня и для вас», это вернет «я и вы» ... –

+0

@ ZoharPeled, верно, я не знаю, что такое точный случай, пример немного туманный .. – LONG

+0

Прошу прощения, что я не упоминал об этом, но я хочу только изменить «на», если он появляется в начале текста в столбце. Случай всегда будет строчным t –

1

Я думаю, вы ищете что-то вроде этого:

UPDATE TableName 
SET ColumnName = SUBSTRING(ColumnName,4,len(ColumnName)) 
WHERE ColumnName LIKE 'to %'; 

Before and After image

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