![]() |
Модераторы: LSD |
![]() ![]() ![]() |
|
Maksym |
|
|||
![]() . ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1456 Регистрация: 19.8.2005 Где: Odessa, Black Sea Репутация: нет Всего: 62 |
Вот такой простой запрос:
Необходимо чтобы в результирующей выборке сначала шли записи, в которых keyword обнаружился в field1, а после них записи для которых keyword попал в field2. Как бы это сделать? ![]() |
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 24 Всего: 538 |
Через uninon:
-------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
Maksym |
|
|||
![]() . ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1456 Регистрация: 19.8.2005 Где: Odessa, Black Sea Репутация: нет Всего: 62 |
LSD
Спасибо ![]() А если какая нибудь запись будет удовлетворять обоим SELECTам - он вадь попадет в выборку дважды? или я ошибаюсь.. |
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 24 Всего: 538 |
Да. В принципе можно включить туда дополнительное условие not (like...), но это не здорово с точки зрения производительности.
-------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
ТоляМБА |
|
||||
![]() Котэ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1607 Регистрация: 15.12.2004 Репутация: 5 Всего: 252 |
Если я не ошибаюсь, то в MS SQL Server 2000:
так попадут по одной записи на разные условия (если запись есть и по 1-му и по 2-му условию)
а так попадут все записи с поторяющимися значениями по обоим условиям
(развница в запросах в слове ALL) Это сообщение отредактировал(а) ТоляМБА - 27.3.2006, 11:51 |
||||
|
|||||
Maksym |
|
|||
![]() . ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1456 Регистрация: 19.8.2005 Где: Odessa, Black Sea Репутация: нет Всего: 62 |
Работаю в postgresql
|
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 24 Всего: 538 |
Попробуй union distinct.
-------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
Maksym |
|
|||
![]() . ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1456 Регистрация: 19.8.2005 Где: Odessa, Black Sea Репутация: нет Всего: 62 |
SELECTы успешно выполняются, с помощью UNIONа объединяются, но итоговый набор данных перемешался все равно, отсортирован по первичному ключу, если не указано иное.
![]() |
|||
|
||||
Maksym |
|
|||
![]() . ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1456 Регистрация: 19.8.2005 Где: Odessa, Black Sea Репутация: нет Всего: 62 |
Да, почитал документацию, на результат UNION накладывается общая сортировка. Получить результаты заросов последовательно - не получается.
|
|||
|
||||
chief39 |
|
||||
![]() карманная тигра ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1631 Регистрация: 20.5.2005 Где: Киев Репутация: 8 Всего: 77 |
Стоп... насколько знаю, distinct только для селекта, поскольку по умолчанию он гребёт всё. А юнион дублирующиеся строки выбрасывает(дефолт). Ему насильно нао указывать ALL Из-за этого стандарт SQL и попинывали. Maksym, попробуй сиё:
Только что прогнал на оракле. Имхо - везде должно отработать - самый что ни на есть стд. скл. ![]() Добавлено @ 16:06 Аааа... пардон, зачитался комментами - вопрос проглядел... ![]()
Дополнительная колонка - для разделения записей по резалтсетам - в итоге её просто не отображай(не используй) ;) -------------------- Люди - это свечи. Они либо горят, либо их - в жопу!(с) |
||||
|
|||||
Maksym |
|
|||
![]() . ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1456 Регистрация: 19.8.2005 Где: Odessa, Black Sea Репутация: нет Всего: 62 |
chief39
не пойму чтото... ввести дополнительную колонку?.. |
|||
|
||||
batigoal |
|
|||
![]() Нелетучий Мыш ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6423 Регистрация: 28.12.2004 Где: Санктъ-Петербургъ Репутация: 1 Всего: 151 |
Да, но не в таблице, а в результате запроса. При обработке этого результата - игнорировать. -------------------- "Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли) ЖоржЖЖ |
|||
|
||||
chief39 |
|
||||
![]() карманная тигра ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1631 Регистрация: 20.5.2005 Где: Киев Репутация: 8 Всего: 77 |
Это колонка времени запроса, а значения - константы. Ты можешь указывать конкретные поля из селектируемых таблиц или константы. В случае констант - они равны для любой строчки резалтсета. То есть
даст
В твоём случае - это пока единственное и совсем несложное решение твоего вопроса ![]() -------------------- Люди - это свечи. Они либо горят, либо их - в жопу!(с) |
||||
|
|||||
Maksym |
|
|||
![]() . ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1456 Регистрация: 19.8.2005 Где: Odessa, Black Sea Репутация: нет Всего: 62 |
chief39
Ну так проблема одинаковых записей не решается... За счет дополнительной виртуальной колонки строки с одинаковыми значениями теряют свою уникальность и UNION их не ообъединяет в одну... |
|||
|
||||
chief39 |
|
|||
![]() карманная тигра ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1631 Регистрация: 20.5.2005 Где: Киев Репутация: 8 Всего: 77 |
Дык... тогда во втором запросе сделай подзапрос not in (первый запрос) Выберет первый. Потом второй, исключая записи, которые УЖЕ были в первом. Так будет помедленнее но.. под все твои требования вроде подгоняется ;) -------------------- Люди - это свечи. Они либо горят, либо их - в жопу!(с) |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Общие вопросы по базам данных" | |
|
Данный форум предназначен для обсуждения вопросов о базах данных не попадающих под тематику других форумов:
Данный форум не предназначен для:
Если вы не соблюдаете эти правила, не удивляйтесь потом не найдя свою тему/сообщение.
Полезные советы: Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, LSD, Zloxa. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | СУБД, общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |