Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Работа со строками, поиск одной строки в другой  [new]
brazko
Member

Откуда:
Сообщений: 3
Доброе время суток. Существует две таблицы строка в первой таблице name_1 - 'фы вфывй цуф ывфТЕКСТфыв ыфвфывф' строка во второй таблице name 'ТЕКСТ' стоит задача модифицировать или сделать выбор name_1 на основании name. Т.е нужно откинуть все лишние символы со строки name_1 на базе строки name. Прошу помочь или хотя б намекнуть в какую степь смотреть =) SUBSTR не очень помогает или я его неправильно готовлю.
23 апр 12, 16:53    [12458291]     Ответить | Цитировать Сообщить модератору
 Re: Работа со строками, поиск одной строки в другой  [new]
iap
Member

Откуда: Москва
Сообщений: 47145
brazko,

трудно приготовить то, чего нет
23 апр 12, 16:55    [12458309]     Ответить | Цитировать Сообщить модератору
 Re: Работа со строками, поиск одной строки в другой  [new]
trew
Member

Откуда: Москва
Сообщений: 2646
Если не подходит CHARINDEX попробуйте алгоритм шинглов (в поисковике).
23 апр 12, 17:03    [12458379]     Ответить | Цитировать Сообщить модератору
 Re: Работа со строками, поиск одной строки в другой  [new]
brazko
Member

Откуда:
Сообщений: 3
iap
brazko,

трудно приготовить то, чего нет


substring =) прошу прощения
23 апр 12, 17:04    [12458391]     Ответить | Цитировать Сообщить модератору
 Re: Работа со строками, поиск одной строки в другой  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
Лучше пишите, одноразовая задача или это постоянно работающий код.
Может вся вся задача отлично решается не на SQL.
Только не CharIndex, а PatIndex
23 апр 12, 20:43    [12459407]     Ответить | Цитировать Сообщить модератору
 Re: Работа со строками, поиск одной строки в другой  [new]
invm
Member

Откуда: Москва
Сообщений: 9844
declare @t1 table (id int primary key, name1 varchar(50));
declare @t2 table (id int primary key, name2 varchar(50));

insert @t1
values
 (1, 'фы вфывй цуф ывфТЕКСТфыв ыфвфывф');
 
insert @t2
values
 (1, 'ТЕКСТ');

select
 left(stuff(t1.name1, 1, nullif(patindex('%' + t2.name2 + '%', t1.name1), 0) - 1, ''), len(t2.name2))
from
 @t1 t1 join
 @t2 t2 on t2.id = t1.id;
?
23 апр 12, 21:28    [12459531]     Ответить | Цитировать Сообщить модератору
 Re: Работа со строками, поиск одной строки в другой  [new]
brazko
Member

Откуда:
Сообщений: 3
invm
declare @t1 table (id int primary key, name1 varchar(50));
declare @t2 table (id int primary key, name2 varchar(50));

insert @t1
values
 (1, 'фы вфывй цуф ывфТЕКСТфыв ыфвфывф');
 
insert @t2
values
 (1, 'ТЕКСТ');

select
 left(stuff(t1.name1, 1, nullif(patindex('%' + t2.name2 + '%', t1.name1), 0) - 1, ''), len(t2.name2))
from
 @t1 t1 join
 @t2 t2 on t2.id = t1.id;
?


PATINDEX не подходит. Сижу размышляю над алгоритмом шинглов. Задача можно сказать одноразовая
24 апр 12, 10:37    [12461101]     Ответить | Цитировать Сообщить модератору
 Re: Работа со строками, поиск одной строки в другой  [new]
kDnZP
Member [заблокирован]

Откуда: ★[msg=16399436]★[msg=20850760]
Сообщений: 11289
brazko
PATINDEX не подходит. Сижу размышляю над алгоритмом шинглов. Задача можно сказать одноразовая

Не кошерный или какие другие причины?
24 апр 12, 10:40    [12461125]     Ответить | Цитировать Сообщить модератору
 Re: Работа со строками, поиск одной строки в другой  [new]
не понял, oO
Guest
я может чего не понимаю в условии задачи, но разве она не сводится к следующему

1. есть строки s1, s2
2. если строка s1 включает в себя строку s2, то вывести строку s2?


вроде like хватает, не?
24 апр 12, 10:47    [12461179]     Ответить | Цитировать Сообщить модератору
 Re: Работа со строками, поиск одной строки в другой  [new]
Игорь86
Member

Откуда:
Сообщений: 163
не понял, oO
я может чего не понимаю в условии задачи, но разве она не сводится к следующему

1. есть строки s1, s2
2. если строка s1 включает в себя строку s2, то вывести строку s2?


вроде like хватает, не?


Полностью согласен.

Если бы автор более конкретно описал. Может быть ему нужно что-то типа такого

https://www.sql.ru/forum/actualthread.aspx?tid=806121
24 апр 12, 12:20    [12461804]     Ответить | Цитировать Сообщить модератору
 Re: Работа со строками, поиск одной строки в другой  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
не понял, oO
2. если строка s1 включает в себя строку s2, то вывести строку s2?
вроде like хватает, не?
А как интерпретировать это?:
brazko
Т.е нужно откинуть все лишние символы со строки name_1 на базе строки name.
PatIndex для получения позиции, т.е. дальнейшей манипуляции со строкой.
24 апр 12, 17:13    [12464405]     Ответить | Цитировать Сообщить модератору
 Re: Работа со строками, поиск одной строки в другой  [new]
не понял, oO
Guest
Mnior
А как интерпретировать это?:
brazko
Т.е нужно откинуть все лишние символы со строки name_1 на базе строки name.
PatIndex для получения позиции, т.е. дальнейшей манипуляции со строкой.


исходя из незаконченного примера
автор
'фы вфывй цуф ывфТЕКСТфыв ыфвфывф' строка во второй таблице name 'ТЕКСТ'


я это понимаю как из строки s1 откинуть все кроме s2.
Вроде как после этого должно получиться s2, не?
24 апр 12, 19:07    [12465280]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить