#sql #sql-server #sql-order-by
#sql #sql-сервер #sql-order-by
Вопрос:
У меня есть данные в таком порядке
Id Value
-- ----
1 a
1 b
1 c
2 a
2 c
3 b
4 c
4 b
4 a
Я хочу отсортировать данные в этом порядке
Id Value
-- ----
1 a
2 a
3 b
4 c
1 b
2 c
4 b
1 c
4 a
Комментарии:
1. и какова логика, стоящая за такой сортировкой?
2. Не просто публикуйте ожидаемый порядок и ожидайте, что люди выведут логику. Мы не берем плату за слово здесь, поэтому добавьте еще много из них к вашему вопросу.
3. Отлично, спасибо, что рассказали нам. Удачи! Не забудьте опубликовать ответ, когда будете разбираться, как это сделать, и объясните логику, стоящую за этим.
4. Пожалуйста, опубликуйте свои попытки того, что вы пытаетесь сделать.
5. На самом деле в таблице есть несколько записей с одинаковыми идентификаторами. Но когда мне нужно их извлечь и отобразить на странице, все данные уникальных идентификаторов должны отображаться в первом пакете и так далее.
Ответ №1:
Кажется, вы хотите чередовать числа. Для этой цели вы можете использовать row_number()
:
order by row_number() over (partition by id order by value),
id
Комментарии:
1. Это действительно создает что-то очень похожее на то, что запрашивает OP, кроме
a,c
значений, сопряженных с4
s .