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

Откуда:
Сообщений: 29
Всем привет и солнечного лета!)

Есть вопросик: две таблички, в одной все как надо два поля: Имя, Фамилия, а в другой одно - PersonName т.е. Имя + Фамилия причем может быть в любой комбинации, как проще сджойнить и так чтоб запрос не завис?

Заранее спасибо!
15 июн 16, 16:31    [19296355]     Ответить | Цитировать Сообщить модератору
 Re: Джоин с текстом  [new]
o-o
Guest
разделитель хоть есть в этом PersonName?
разбивайте на 2 слова и соедияйте так и этак,
т.е. Имя = word1 and Фамилия = word2 или Имя = word2 and Фамилия = word1
(ну или первое union второе)
и радуйтесь, если имя не может быть фамилией.
например, Michele Simone
любое слово является именем.
но у этого конкретного товарища одно из слов -- фамилия.
------
молчу о полных тезках, которых безнаказанно сджойнят не по делу
(у меня в группе в детсаде было 2 Оли Кузнецовых.
это выборка в 20 детей. у вас что, еще меньше в таблице или надежда умирает последней?)
15 июн 16, 16:42    [19296421]     Ответить | Цитировать Сообщить модератору
 Re: Джоин с текстом  [new]
Teoretic
Member

Откуда:
Сообщений: 29
o-o,

Разделитель есть - пробел (хотя возможно и нет в отдельных кейсах) и это идет как доп условие
т.е. join on t1.Phone = t2.Phone And (t1.LastName = t2 or t1.First_Name= t2)

Хотелось бы как-то типа t1.LastName like ='%'.PersonName .'%' or t1.First_Name like ='%'.PersonName .'%'

Вот такого плана можно как-то реализовать?
15 июн 16, 16:54    [19296519]     Ответить | Цитировать Сообщить модератору
 Re: Джоин с текстом  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7868
Teoretic,

PersonName у Вас не атомарное, соответственно, Вы нарушаете 1-ю нормальную форму. Прежде, чем выполнять какие-то запросы, данные необходимо нормализовать, т.е. разделить Имя + Фамилию на два поля.
15 июн 16, 18:00    [19296957]     Ответить | Цитировать Сообщить модератору
 Re: Джоин с текстом  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
Владислав Колосов
Teoretic,

PersonName у Вас не атомарное, соответственно, Вы нарушаете 1-ю нормальную форму. Прежде, чем выполнять какие-то запросы, данные необходимо нормализовать, т.е. разделить Имя + Фамилию на два поля.

я всегда думал что нормальные формы относятся к архитектуре, а никак не к условиям и тп :)
15 июн 16, 18:02    [19296966]     Ответить | Цитировать Сообщить модератору
 Re: Джоин с текстом  [new]
Teoretic
Member

Откуда:
Сообщений: 29
Я для миграции, нормализовавывать - это другая задача.....а так да самое первое что приходит
по пробелу разделить, хотя в данном случае думаю что не свовсем праивльно тут вроде через XML надо
только надо думать как ...давно эт тему не рюхал) Думал может кто подскажет ...примерчиком
15 июн 16, 18:20    [19297025]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить