Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / сортировка / 3 сообщений из 3, страница 1 из 1
27.11.2008, 12:20
    #35678712
Naf
Naf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сортировка
Есть таблица T с двумя строковыми полями A,B
Входящий параметр S
Отбираются значения по условию
Код: plaintext
1.
2.
SELECT T.A, T.B
FROM T
WHERE (A LIKE S+"%") OR (B LIKE S+"%")
требуется полученную выборку отсортировать так, сначала записи отвечающие условию по полю A, а потом по полю B. Те записи, которые удовлетворяют обоим условиям считать достаточно удовлетворяющим первому (по полю A).
Отсортировать имеется ввиду в этом же запросе.
Пока получается только так
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
SELECT DISTINCT X.A, X.B
FROM (
SELECT T.A as A, T.B as B,  1  as Rank
WHERE (A LIKE S+"%")
UNION
SELECT T.A, T.B,  2 
WHERE (B LIKE S+"%")) as X
GROUP BY X.Rank

С уважением, Naf
...
Рейтинг: 0 / 0
27.11.2008, 12:32
    #35678762
АнатоЛой
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сортировка
Naf,СУБД бы назвал...
я в Informix делаю так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
SELECT 
    CASE
      WHEN A LIKE S+"%" THEN
         0 
      ELSE
         1 
    END AS Rank
  , T.A
  , T.B
  FROM T
    WHERE (A LIKE S + "%") 
      OR (B LIKE S + "%")
  ORDER BY  1  -- Rank
...
Рейтинг: 0 / 0
27.11.2008, 12:35
    #35678777
Naf
Naf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сортировка
АнатоЛойNaf,СУБД бы назвал...
я в Informix делаю так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
SELECT 
    CASE
      WHEN A LIKE S+"%" THEN
         0 
      ELSE
         1 
    END AS Rank
  , T.A
  , T.B
  FROM T
    WHERE (A LIKE S + "%") 
      OR (B LIKE S + "%")
  ORDER BY  1  -- Rank

отлично!
...
Рейтинг: 0 / 0
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / сортировка / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]