Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

perlu menggunakan ROW_NUMBER tanpa over di sqlserver 2005

Gunakan beberapa klausa ROW_NUMBER per kolom dan pilih salah satu yang relevan:

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

ATAU menggunakan ekspresi KASUS. Catatan:semua tipe data harus kompatibel

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

ATAU Jika Anda benar-benar menginginkan nomor baris arbitrer, lakukan ini:

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Operator efek samping penggunaan tidak valid Sisipkan dalam suatu fungsi

  2. Hitung (*) vs Hitung (Id) di sql server 2005

  3. Ubah jenis kolom tanpa kehilangan data

  4. Masalah dengan pernyataan CASE dalam prosedur tersimpan server sql

  5. Permintaan pada bidang datetime dengan milidetik memberikan hasil yang salah di SQL Server