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

Откуда:
Сообщений: 2
Добрый день, уважаемые форумчане. Прошу помощи в следующем вопросе. Мне необходимо подтянуть данные к номеру телефона из др таблицы. Проблема в том, что в др таблице телефоны могут иметь др формат (7 или 8 в начале, всегда куча пробелов в конце).
Т.е. обычное эквисоединение здесь не подходит, поскольку данные не имеют четкого равенства. Прочитал про не-эквисоединения. Везде пишут, что использовать Like можно, но все приводят в пример только Between.

SELECT*
FROM T1, T2
WHERE T1.qwe like T2.global_call_ph_number

так Management Studio запрос воспринимает, но выдает только пустые значения. Я догадываюсь, что мне нужно добавить символ %, указав, что может быть любое количество символов как до, так и после.
Но в таком виде

SELECT*
FROM T1, T2
WHERE T1.qwe like %T2.global_call_ph_number%

у меня естественно не принимает. Подскажите, как сделать подобное соединение
1 авг 14, 11:04    [16385899]     Ответить | Цитировать Сообщить модератору
 Re: Не-эквисоединение с Like  [new]
Jovanny
Member

Откуда:
Сообщений: 1196
Может, так?
SELECT*
FROM T1, T2
WHERE T1.qwe like ('%' + T2.global_call_ph_number + '%')
1 авг 14, 11:11    [16385939]     Ответить | Цитировать Сообщить модератору
 Re: Не-эквисоединение с Like  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
Abakumov
SELECT*
FROM T1, T2
WHERE T1.qwe like '%' + RTRIM(T2.global_call_ph_number) +'%'
1 авг 14, 11:11    [16385940]     Ответить | Цитировать Сообщить модератору
 Re: Не-эквисоединение с Like  [new]
iap
Member

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

  • укажите версию сервера
  • приведите скрипт создания тестовых таблиц
  • приведите скрипт вставки тестовых данных в тестовую таблицу

    Это всё есть в требованиях к оформлению вопроса.
    Странно, что Вы им не следуете.
  • 1 авг 14, 11:13    [16385956]     Ответить | Цитировать Сообщить модератору
     Re: Не-эквисоединение с Like  [new]
    mrGuest
    Guest
    А еще рекомендую автору почитать про паттерны и посмотреть примеры, там все очень просто:
    http://msdn.microsoft.com/ru-ru/library/ms179859.aspx

    И не забудьте применять в зависимости от своей версии SQL Server.
    1 авг 14, 11:23    [16386021]     Ответить | Цитировать Сообщить модератору
     Re: Не-эквисоединение с Like  [new]
    aleks2
    Guest
    Abakumov
    Проблема в том, что в др таблице телефоны могут иметь др формат (7 или 8 в начале, всегда куча пробелов в конце).


    Гораздо эффективнее нормализовать телефоны апдейтом, чем парить себе мозг шаблоном для like.
    1 авг 14, 12:31    [16386506]     Ответить | Цитировать Сообщить модератору
     Re: Не-эквисоединение с Like  [new]
    Abakumov
    Member

    Откуда:
    Сообщений: 2
    Всем спасибо, все-равно сохранил себе пример с запросом, но уж очень он долгий, через Update действительно быстрее
    1 авг 14, 13:19    [16386858]     Ответить | Цитировать Сообщить модератору
    Все форумы / Microsoft SQL Server Ответить