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

Làm thế nào để tạo số hàng tuần tự trong tsql?

Không cần phải tránh các Hàm phân tích nếu cơ sở dữ liệu của bạn hỗ trợ chúng, ví dụ:ROW_NUMBER ()

    SELECT
        ROW_NUMBER() OVER (ORDER BY [<PRIMARYKEY_COLUMN_NAME>]) AS Number
    FROM
        [<TABLE_NAME>]

Cú pháp là Func([ arguments ]) OVER (analytic_clause) bạn cần tập trung vào OVER (). Dấu ngoặc đơn cuối cùng này tạo (các) phân vùng cho các hàng của bạn và áp dụng Func () trên từng phân vùng này. Trong đoạn mã trên, chúng ta chỉ có một tập hợp / phân vùng duy nhất của các hàng. Do đó, trình tự được tạo là dành cho tất cả các hàng.

Bạn có thể tạo nhiều tập dữ liệu của mình và tạo số thứ tự cho từng tập chỉ trong một lần. Ví dụ:nếu bạn cần tạo số thứ tự cho tất cả các tập hợp các hàng có cùng categoryId. Bạn chỉ cần thêm Partition By mệnh đề như thế này (PARTITION BY categoryId ORDER BY [<PRIMARYKEY_COLUMN_NAME>]) .

Hãy nhớ rằng sau FROM bạn cũng có thể sử dụng thêm một ORDER BY khác để sắp xếp dữ liệu của bạn theo cách khác. Nhưng nó không ảnh hưởng đến OVER ()



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL Server 2016:Khôi phục cơ sở dữ liệu

  2. Lỗi SQL Server 1934 xảy ra trên CHÈN vào bảng với cột được tính toán PHP / PDO

  3. Nhận số lượng và hàng trong cùng một truy vấn

  4. Tự động gán tên tệp cho chuỗi kết nối excel

  5. Chuẩn hóa một bảng cực kỳ lớn