Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

cần sử dụng không hết ROW_NUMBER trong sqlserver 2005

Sử dụng một số mệnh đề ROW_NUMBER cho mỗi cột và chọn mệnh đề có liên quan:

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

HOẶC sử dụng biểu thức CASE. Lưu ý:tất cả các kiểu dữ liệu phải tương thích

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

HOẶC Nếu bạn thực sự muốn một số hàng tùy ý thì hãy làm như sau:

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. Làm thế nào để chuyển đổi DateTime thành một số có độ chính xác lớn hơn ngày trong T-SQL?

  2. Tìm các giá trị duy nhất trong một cột văn bản được phân tách bằng dấu phẩy

  3. Duy trì cột ngày giờ được tính toán trong SQL Server 2005

  4. Gọi thủ tục được lưu trữ với giá trị trả về

  5. Cần tư vấn thiết kế bảng trong SQL-Server