2012-10-16 14 views
12

Czy istnieje sposób użycia ROW_NUMBER() w SQL bez używania OVER, ponieważ chcę użyć sortowania.ROW_NUMBER() bez over w SQL

Mam siatkę z wieloma sortowalnymi kolumnami z konfigurowalnymi wierszami. W moim scenariuszu kolejność jest zmienna, dlatego nie jestem w stanie złożyć zamówienia za pomocą ROWNUM.

+2

MySQL nie ma ROW_NUMBER. Dlaczego oznaczyłeś to za pomocą MySQL? –

+3

Nie [jest obowiązkową częścią gramatyki] (http://msdn.microsoft.com/en-us/library/ms186734.aspx). Wyjaśnij więcej o swojej pierwotnej potrzebie, zamiast proponowanego rozwiązania. –

+0

@MarkByers Przepraszamy przez pomyłkę, usunięte! –

Odpowiedz

37
select ROW_NUMBER() OVER (ORDER BY (SELECT NULL)) as number from Task order by RuleId 
+0

jest taki sam jak: ROW_NUMBER() OVER (Order By RuleId), ja również nie chcę powtarzać tego samego zdania według klauzuli dla instrukcji OVER. – hazimdikenli

+0

Nie, to nie to samo, ale daje takie same wyniki dla tego zapytania. Możesz (SELECT NULL) zamiast prawdziwych kolumn, aby pominąć porządek w "oknie" w dowolnym (moim zdaniem) złożonym scenariuszu z row_number() – SalientBrain

Powiązane problemy