Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

про UNION ... [D5, IB6.x]


Andrey V. ©   (2005-07-11 08:46:00) 

запрос :
select t1.name from table1 t1
UNION
select t2.name from table2 t2
работал, пока поля name были одинаковыми по длине.
У одной таблицы изменилась длинна поля name и запрос перестал работать.
Подскажите как в запросе их привести к одной длине ?


GanibalLector   (2005-07-11 23:54:00) [1]

Fay правду говорит ;)
Примерно так это выглядит :

select cast(t1.name as varchar(20)) as name from table1 t1
UNION
select cast(t2.name as varchar(20)) as name from table2 t2


Desdechado   (2005-07-11 19:23:00) [2]

[7]
лопаты с граблями не путай

попробуй - увидишь


evvcom   (2005-07-11 12:04:00) [3]


> сортирует все равно - это побочный эффект при поиске-удалении
> дубликатов

а...а... Так это тогда и JOIN тоже "сортирует".


Desdechado   (2005-07-11 11:51:00) [4]

2 evvcom
ORDER BY - явная сортировка
без нее UNION (без ALL) сортирует все равно - это побочный эффект при поиске-удалении дубликатов, причем сортирует по всему списку полей в порядке их следвания в SELECT

и вообще, про дубликаты я заикнулся специально - это типичные грабли, на которые наступают почти все


evvcom   (2005-07-11 11:46:00) [5]


> учти, union убивает дубликаты и сортирует

не знаю как в IB, но по стандарту, чтобы UNION не убивал дубликаты используется дополнительно ALL. А насчет сортировки вообще впервые слышу. Сортировка делается через ORDER BY


Desdechado   (2005-07-11 11:19:00) [6]

учти, union убивает дубликаты и сортирует


Anatoly Podgoretsky   (2005-07-11 09:07:00) [7]

Тогда возникает вопрос, почему ты пытаешься объединять две разные, не совместимые таблицы


Fay   (2005-07-11 08:56:00) [8]

Andrey V. ©   (11.07.05 8:46)
Ну добей меньшее CAST-ом.


evvcom   (2005-07-11 08:50:00) [9]

Возможно, длина поля в результате равна длине поля из первого селекта. Попробуй поменять селекты местами.


Наверх

Титульная страница Поиск, карта сайта Написать письмо