Nombor Baris Berbeza dalam SQL menggunakan Row_Number
Pertanyaan berbeza dalam SQL digunakan untuk mendapatkan nilai unik daripada lajur yang ditentukan. Walau bagaimanapun, terdapat senario di mana adalah wajar untuk bukan sahaja memaparkan nilai yang berbeza tetapi juga nombor baris yang sepadan. Untuk mencapai matlamat ini, fungsi Row_Number boleh digunakan bersama dengan kata kunci DISTINCT.
Dalam contoh yang diberikan, pengguna cuba menggabungkan DISTINCT dengan Row_Number untuk memaparkan nilai yang berbeza bersama dengan nombor baris:
SELECT DISTINCT id, ROW_NUMBER() OVER (ORDER BY id) AS RowNum FROM table WHERE fid = 64
Walau bagaimanapun, pertanyaan ini hanya menghasilkan nilai yang berbeza, serupa dengan yang berikut pertanyaan:
SELECT distinct id FROM table WHERE fid = 64
Untuk menyelesaikan isu ini, fungsi DENSE_RANK boleh digunakan dan bukannya Row_Number. DENSE_RANK memperuntukkan nombor baris berturut-turut kepada nilai yang berbeza, tanpa mengira sebarang jurang dalam data.
Berikut ialah pertanyaan yang diperbetulkan:
SELECT distinct id, DENSE_RANK() OVER (ORDER BY id) AS RowNum FROM table WHERE fid = 64
Pertanyaan ini akan memberikan hasil yang diingini: senarai nilai yang berbeza dengan nombor baris yang sepadan, seperti yang dimaksudkan.
Atas ialah kandungan terperinci Bagaimana untuk menetapkan Nombor Baris kepada Nilai Berbeza dalam SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!