SQL сортировка данных в шаблон - PullRequest
5 голосов
/ 15 февраля 2010

Не уверен, если это возможно, но может быть творческий подход ...

Учитывая эти данные в SQL Server 2005:

AAA
AAA
В
В
CCC
CCC
DDD
DDD

Как я могу вернуть набор результатов, отсортированный по шаблону, подобному этому:

AAA
В
CCC
DDD
AAA
В
CCC
DDD

Ответы [ 3 ]

5 голосов
/ 15 февраля 2010

Если бы ваш столбец назывался "col", а ваша таблица называлась "table", я бы попробовал что-то вроде этого:

WITH Indexes AS (
    SELECT 
    ROW_NUMBER() OVER (PARTITION BY col ORDER BY col) as __row,
    col
    FROM table)
SELECT col
FROM Indexes
ORDER BY __row, col;
0 голосов
/ 15 февраля 2010

Mysql, если у вас есть таблица T (varchar); с предоставленными вами данными:

select @t:=a from T order by @t <> a;

это работает: -)

0 голосов
/ 15 февраля 2010

Не знаю, работает ли это, но в Oracle я бы попытался создать представление, в котором вы используете ROWNUM в запросе вашего представления.

Затем запросите представление и выполните сортировку по:

  • rownum по модулю 2
  • строка

У меня нет моей базы данных, чтобы проверить это, но этот совет может дать вам некоторые идеи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...