Выбрать все и дать случайный вывод (Случайный сортированный вывод) - PullRequest
1 голос
/ 10 мая 2011

У меня есть таблица, похожая на эту

ID Name City 
-------------
0  asd  sda
1  hrs  gsh
2  ghd  0
3  hsa  0
.
.

Как я могу вернуть city! = '0' в случайном порядке, а затем city = '0' в случайном порядке?

Ответы [ 2 ]

1 голос
/ 10 мая 2011

Предполагая, что ваша СУБД поддерживает функцию RAND, которая возвращает различное случайное число для каждой строки в вашем наборе результатов:

SELECT ID, Name, City
  FROM SomethingLikeThis
 ORDER BY CASE WHEN City = 0 THEN 1 ELSE 0 END, RAND();
1 голос
/ 10 мая 2011

Для SQL Server (RAND дает одинаковое значение для всех строк в SQL Server)

ORDER BY
    CASE WHEN City <> '0' THEN 1 ELSE 2 END,
    NEWID()
...