sql >> Databáze >  >> RDS >> Sqlserver

je třeba použít ROW_NUMBER bez over v sqlserver 2005

Použijte několik ROW_NUMBER klauzulí na sloupec a vyberte relevantní:

....
    ROW_NUMBER() OVER (ORDER BY [Column1]) as rn1,
    ROW_NUMBER() OVER (ORDER BY [Column2]) as rn2,
    ROW_NUMBER() OVER (ORDER BY [Column3]) as rn3,
    ROW_NUMBER() OVER (ORDER BY [Column4]) as rn4
....

NEBO použijte výraz CASE. Poznámka:všechny datové typy musí být kompatibilní

ROW_NUMBER() OVER (ORDER BY CASE @sort
                     WHEN 1 THEN [Column1]
                     WHEN 1 THEN [Column2]
                     WHEN 1 THEN [Column3]
                     ...
                   END

NEBO Pokud opravdu chcete libovolné číslo řádku, udělejte toto:

ROW_NUMBER() OVER (ORDER BY (SELECT 1)) as rn


  1. datetime to totalminute v sql

  2. Použití MyRocks Storage Engine se serverem MariaDB

  3. Zakažte nativní implementaci JSF serveru webLogic a použijte implementaci myfaces

  4. Atomic UPDATE pro zvýšení celého čísla v Postgresql