powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Работа со строками
5 сообщений из 5, страница 1 из 1
Работа со строками
    #32009261
Zoog
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть ли SQL Server функция ищущая вхождения символов одной строки в другую. Или может кто знает алгоритм, использующий функции T-SQL, который бы возвращал позицию первого вхождения символа одной строки в другой.
...
Рейтинг: 0 / 0
Работа со строками
    #32009263
GreenSunrise
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CHARINDEX

А вообще в BOL есть раздел такой "String functions" - там они все в лучшем виде расписаны.
...
Рейтинг: 0 / 0
Работа со строками
    #32009282
Фотография Deosfen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
можно еще PATINDEX
...
Рейтинг: 0 / 0
Работа со строками
    #32009294
Zoog
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вы меня не поняли. Нужно найти символ, подчёркиваю СИМВОЛ, одной строки в другой строке. А не подстроку как вы мне советуете. Если не понятно, то см. функцию С strbrk(...). Мне нужно что-то наподобии.
А вцелом задача такая. Есть строка, кт. содержит знаки припинания и всякую муру типа:@,$,%... Нужно "очистиь" строку от этого мусора, просто их удалить (не заменять).
...
Рейтинг: 0 / 0
Работа со строками
    #32009301
AlexUnik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Следующая процедура неплохо работает (творение не мое, где-то в Инете откопал):
CREATE PROCEDURE usp_search_replace
@tabelnaam varchar(35),
@kolomnaam varchar(35),
@zoek varchar(40),
@vervang varchar(40)
AS

declare @build varchar(255)
declare @zoeklengte int

select @zoeklengte = DATALENGTH(@zoek)
select @build = "UPDATE " + @tabelnaam + " SET " + @kolomnaam + "= STUFF(" + @kolomnaam + ",PATINDEX('%'+'" + @zoek+"'+'%',"+@kolomnaam+"),"+CONVERT(varchar,@zoeklengte)+",'"+@vervang+"') WHERE PATINDEX('%'+'" + @zoek+"'+'%',"+@kolomnaam+") > 0"
again:
execute (@build)
if UPPER(@zoek) <> UPPER(@vervang) AND @@ROWCOUNT > 0 goto again

GO
Для лучшего понимания показываю пример вызова процедуры, а то автор не только не представился, но и не откомментировал ее (в таблице MyTemp столбец perem обрабатывается на предмет замены запятых на точки):
exec usp_search_replace @tabelnaam='MyTemp', @kolomnaam = 'perem', @zoek=',', @vervang='.'
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Работа со строками
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]