У меня есть таблица, похожая на эту
ID Name City ------------- 0 asd sda 1 hrs gsh 2 ghd 0 3 hsa 0 . .
Как я могу вернуть city! = '0' в случайном порядке, а затем city = '0' в случайном порядке?
Предполагая, что ваша СУБД поддерживает функцию RAND, которая возвращает различное случайное число для каждой строки в вашем наборе результатов:
SELECT ID, Name, City FROM SomethingLikeThis ORDER BY CASE WHEN City = 0 THEN 1 ELSE 0 END, RAND();
Для SQL Server (RAND дает одинаковое значение для всех строк в SQL Server)
ORDER BY CASE WHEN City <> '0' THEN 1 ELSE 2 END, NEWID()