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

Bagaimana cara menghasilkan nomor baris berurutan di tsql?

Tidak perlu menghindari Fungsi Analitik jika database Anda mendukungnya, misalnya ROW_NUMBER()

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

Sintaksnya adalah Func([ arguments ]) OVER (analytic_clause) Anda harus fokus pada LEBIH (). Tanda kurung terakhir ini membuat partisi dari baris Anda dan menerapkan Func() pada partisi ini satu per satu. Dalam kode di atas kami hanya memiliki satu set/partisi baris. Oleh karena itu urutan yang dihasilkan adalah untuk semua baris.

Anda dapat membuat beberapa set data Anda dan menghasilkan nomor urut untuk masing-masingnya sekaligus. Misalnya jika Anda perlu menghasilkan nomor urut untuk semua set baris yang memiliki kategoriId yang sama. Anda hanya perlu menambahkan Partition By klausa seperti ini (PARTITION BY categoryId ORDER BY [<PRIMARYKEY_COLUMN_NAME>]) .

Ingatlah bahwa setelah FROM Anda juga dapat menggunakan ORDER BY tambahan lainnya untuk mengurutkan data Anda secara berbeda. Tapi itu tidak berpengaruh pada 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. Menyegarkan Tabel SQL Server Dengan Lebih Sedikit Interupsi Menggunakan Partition Switching

  2. Memahami Ukuran Penyimpanan 'waktu' di SQL Server

  3. konversikan Nomor Seri Tanggal Excel ke Tanggal Reguler

  4. Bagaimana cara mendeteksi jika string berisi setidaknya angka?

  5. Apa itu Operator Logis ATAU di SQL Server - Tutorial SQL Server / TSQL Bagian 119