Я пытаюсь удалить все слова перед последовательной известной подстрокой («Найти»). Я хотел бы удалить все перед «Находить» навалом более 600 строк Description
. Слова перед этой подстрокой различны во всех случаях. Например, (Description
«Некоторые тексты, некоторые дополнительные тексты ... Чтобы найти ... Несколько дополнительных текстов») У меня есть несколько других сообщений и я попытался использовать TRIM, CHARINDEX и SUBSTRING_INDEX. Спасибо за помощь!удалить все слова перед последовательной известной подстрокой
ответ
Если это SQL Server, относительно легкий способ удаления ведущих бит было бы с помощью SUBSTRING и CHARINDEX:
SELECT SUBSTRING(ColumnName, CHARINDEX('To Find a', ColumnName), 2147483647)
FROM YourTable;
функция CHARINDEX находит позицию подстроки, а результат используется в качестве второго ар подстроки gument. Аргумент length устанавливается в значение int
, чтобы убедиться, что все оставшиеся символы в конце строки возвращены. (Вам не нужно вычислять точное число.) Если подстрока не найдена, CHARINDEX возвращает 0. В этом контексте 0 в качестве начальной позиции приводит к возврату всего строкового значения.
Если вы действительно хотите сделать наоборот, т.е. держать ведущий текст и удалить остальные, так как один из ваших комментариев, кажется, подразумевает, вы можете попробовать использовать CHARINDEX и LEFT таким образом:
SELECT LEFT(ColumnName, CHARINDEX('To Find a', ColumnName + 'To Find a') - 1)
FROM YourTable;
Снова CHARINDEX возвращает значение 'To Find a'
в значении столбца. После вычитания 1 это становится аргументом длины LEFT. Чтобы убедиться, что CHARINDEX находит поисковый запрос, этот термин добавляется к искомому значению: если исходное значение не имеет 'To Find a'
, CHARINDEX попадает в прилагаемый бит и возвращает позицию после последнего символа исходной строки, которая, при вычитании, становится точной длиной строки.
В SQL Server, чтобы выбрать ведущий текст:
DECLARE @String AS VARCHAR(255) = 'Some Text, Some More Text…To Find a… Some More Text'
SELECT LEFT(@String,CHARINDEX('To Find a',@String)-1)
(Предполагая, что строка постоянно присутствует, как указано в вопросе)
Для удаления ведущих текст:
DECLARE @String AS VARCHAR(255) = 'Some Text, Some More Text…To Find a… Some More Text'
SELECT RIGHT(@String,CHARINDEX(REVERSE('To Find a'),REVERSE(@String))-1)
Если вы хотите сохранить «Найти», затем вы настраиваете -1
ближе к концу запроса.
Update:
Если «найти» не в каждой строке, и с помощью таблицы:
SELECT CASE WHEN CHARINDEX('To Find a',YourField) > 0
THEN LEFT(YourField,CHARINDEX('To Find a',YourField)-1)
ELSE YourField
END AS 'FixedField'
FROM YourTable
Если «Найти a» является ведущим текстом @string, он столкнулся с ошибкой «Неверный параметр длины, переданный функции LEFT или SUBSTRING». – VahiD
Вопрос о согласованной известной подстроке. –
К сожалению, я не уверен, как использовать «DECLARE @String AS VARCHAR (255)» Чтобы быть более конкретным, у меня есть сотни видео со случайными описаниями в FIELD, называемом 'Описание'. Тем не менее, я обнаружил, что у многих есть слова «найти» в середине описания в качестве отправной точки для оставшегося описания, которое я хотел бы удалить. Начало каждого описания также отличается. Я стараюсь избегать делать это один за другим, если это возможно. Вероятно, вы уже ответили на мой вопрос, я просто не понимаю, как его реализовать. Извините за мое невежество. Спасибо за помощь! – user2755112
- 1. Java Regex - получить все слова перед подстрокой в String
- 2. Удалить все перед 3 вхождением в PHP
- 3. Вставить строку перед подстрокой строки
- 4. Удалить файлы из известной папки
- 5. Поиск Значение слова Object Book с подстрокой
- 6. php удалить все перед символом
- 7. удалить все перед последней запятой
- 8. напечатать все слова перед определенным символом
- 9. NOTEPAD ++ Regex Как удалить все символы между подстрокой и,
- 10. Получите строку перед подстрокой, используя sql?
- 11. Слушайте ключевые слова в последовательной связи
- 12. удалить все слова из вектора символов, которые не определенные слова
- 13. Python- Удалить все слова, содержащие другие слова в списке
- 14. Как удалить все слова, начинающиеся с другого полного слова
- 15. как удалить все похожие слова внутри массива
- 16. Regex удалить все белые, кроме одного слова?
- 17. Как удалить ВСЕ слова остановки из текста?
- 18. C: Удалить все вхождения слова в файл
- 19. Удалить все заглавные слова от начала предложений
- 20. Как удалить все после сопоставления ключевого слова?
- 21. Удалить все, кроме первого слова из предложения
- 22. удалить все слова, содержащие обратную косую черту
- 23. Производительности раскола() над подстрокой()
- 24. удалить все символы в строке перед именем
- 25. Javascript удалить все перед специальным символом?
- 26. Как удалить все символы перед окончательным \
- 27. Удалить все перед первым # в поле mysql
- 28. удалить все HTML тегов перед проверкой
- 29. Удалить все перед «HTTP: // ...» в строке
- 30. Android как удалить все charachers перед/
Какой у вас поставщик РСУБД? – dasblinkenlight
что именно вы пробовали? Это будет возможно с помощью функций, которые вы упомянули. – dognose
не уверен, что означает поставщик RDBMS ... Извините – user2755112