sql >> Database teknologi >  >> RDS >> Sqlserver

skal bruge ROW_NUMBER uden over i sqlserver 2005

Brug flere ROW_NUMBER-sætninger pr. kolonne, og vælg det relevante:

....
    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
....

ELLER brug et CASE-udtryk. Bemærk:alle datatyper skal være kompatible

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

ELLER Hvis du virkelig ønsker et vilkårligt rækkenummer, så gør dette:

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


  1. I hvilken rækkefølge evalueres MySQL JOINs?

  2. Vælg varer fra forskellige kilder, og bestil efter dato

  3. Hvornår skal man bruge LEFT JOIN og hvornår skal man bruge INNER JOIN?

  4. Hvor meget reel lagerplads bruges med en varchar(100)-deklaration i mysql?