2015-11-11 5 views
0

Я использую SQL Row_Number для получения столбца raking;SQL Row_Number обратный порядок

ROW_NUMBER() OVER(PARTITION BY [email protected] ORDER BY di.Create_date,di.Create_time_hh,di.Create_time_mm) as [Rank] 

Однако мне нужно отменить заказ. Я попытался добавить в Asc, но это, похоже, не имеет никакого значения ?!

ПолитикаRef @ является varchar (255), Create_Date является датой, но с временной частью все как 00.00.00.000, Create_Time_hh - это число (это час дня, когда запись была создана, но сохранена как 09, 17 и т. Д.), А Create_Time_mm также является числом (это минута в тот день, когда была создана запись, но снова сохранена как 19, 57 и т. Д.).

Почему я не могу переопределить это обычным способом?

+2

Если вы хотите отменить заказ вам нужно использовать 'DESC'. 'ASC' - это порядок сортировки по умолчанию (также: какую СУБД вы используете?) –

+0

Это тоже ничего не меняет! Как узнать СУБД? – Becky

+1

@Becky - СУБД - с каким конкретным продуктом вы работаете? [Тег: SQL-сервер]? [Тег: оракул]? [Тег: MySQL]? Что-то другое? Любой вопрос с тегом [tag: sql] должен, в общем, также иметь тег для того, с каким продуктом вы работаете. –

ответ

1

Используйте "desc" чтобы заказать по убыванию. По возрастанию (по возрастанию) значение по умолчанию и будет упорядочено ASC, если оно не объявлено.

Возможно, это может быть полезно? OVER clause. How to order by multiple columns within a CASE clause?

Вы также можете заказать поля по нескольким столбцам, т.е.

SELECT Column1, Column2, Column3 
FROM Table1 
Order By Column1 desc, Column2 desc 
+0

Заказ по описанию не меняет его, чего я не понимаю! – Becky

+0

хорошо у вас есть три поля, которые у вас есть? один или все три? 'ORDER BY di.Create_date DESC, di.Create_time_hh DESC, di.Create_time_mm DESC' –

+0

OH! Я не понимал, что вам нужно это для каждой колонки, блестящий, это трюк, спасибо вам большое! – Becky