Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Menambah Nombor Baris pada Keputusan Pertanyaan PostgreSQL Saya?

Bagaimanakah Saya Boleh Menambah Nombor Baris pada Keputusan Pertanyaan PostgreSQL Saya?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-15 15:59:10602semak imbas

How Can I Add Row Numbers to My PostgreSQL Query Results?

Menambah Nombor Baris pada Keputusan Pertanyaan PostgreSQL

Memaparkan nombor baris boleh memberikan konteks yang berharga kepada hasil pertanyaan PostgreSQL anda. PostgreSQL memperkenalkan fungsi tetingkap ROW_NUMBER() dalam versi 8.4, yang membolehkan anda menambah nombor baris pada pertanyaan anda.

Sintaks:

Sintaks untuk ROW_NUMBER() ialah sebagai berikut:

ROW_NUMBER() OVER (PARTITION BY partition_expression ORDER BY sort_expression)
  • sekatan_ungkapan: Pilihan. Kumpulkan baris bersama-sama sebelum penomboran.
  • ungkapan_isih: Pilihan. Menentukan susunan nombor baris diperuntukkan.

Contoh:

Untuk menetapkan nombor baris tanpa mengisih atau mengumpulkan, gunakan:

SELECT ROW_NUMBER() OVER () AS rownum, *
FROM foo_tbl;

Isih dan Pengumpulan:

Untuk mengisih dan kumpulan baris sebelum memberikan nombor baris, nyatakan klausa ORDER BY dan PARTITION BY, masing-masing:

SELECT ROW_NUMBER() OVER (ORDER BY last_name) AS rownum, *
FROM employee_tbl;

Pertanyaan ini akan menetapkan nombor baris berdasarkan nilai dalam lajur last_name, dengan hubungan diselesaikan dengan pengisihan lalai susunan jadual.

Memudahkan Pertanyaan:

Jika pengisihan atau pengumpulan tidak diperlukan, anda boleh memudahkan pertanyaan seperti berikut:

SELECT ROW_NUMBER() OVER () AS rownum, *  -- no fields in the ORDER BY clause
FROM foo_tbl;

Contoh SQL Fiddle:

Contoh yang berfungsi boleh didapati di [SQL Biola](https://sqlfiddle.com/#!18/6e750c/1).

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menambah Nombor Baris pada Keputusan Pertanyaan PostgreSQL Saya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn