Fungsi LEAD() Pelayan SQL

Fungsi Lead Pelayan Sql



Dalam artikel ini, kami akan membimbing anda melalui asas bekerja dengan fungsi lead() dalam SQL Server. Kami akan membincangkan perkara yang dilakukan oleh fungsi, sintaksnya, dan contoh praktikal cara menggunakannya.

Fungsi Utama Pelayan SQL

Fungsi utama dalam SQL Server ialah fungsi analitik yang membolehkan anda mengakses data daripada baris berikutnya dalam set hasil yang sama tanpa sambung sendiri.

Fungsi ini membolehkan anda mengakses baris pada offset tertentu sebelum baris semasa. Contohnya, menggunakan fungsi petunjuk, anda boleh mencari baris sejurus selepas baris semasa, baris ke-10 daripada baris semasa, dsb.







Fungsi ini mendorong pembangun pangkalan data untuk melakukan perbandingan baris tanpa tugas yang rumit seperti menyertai, menggunakan paparan, dsb.



Sintaks Fungsi

Berikut menggambarkan sintaks fungsi lead() dalam SQL Server:



LEAD ( scalar_expression [ ,offset ] , [ lalai ] )
OVER ( [ partition_by_clause ] order_by_clause )

Senarai seterusnya ialah hujah yang disokong dan fungsinya:





  1. scalar_expression - hujah ini menandakan nilai pulangan berdasarkan offset yang ditentukan. Ini boleh menjadi ungkapan apa-apa jenis yang mengembalikan nilai tunggal. Walau bagaimanapun, nilai scalar_expression tidak boleh menjadi fungsi analitik/tetingkap lain.
  2. offset – ini menetapkan bilangan baris daripada kedudukan baris semasa nilai yang diambil. Secara lalai, fungsi akan mengambil baris serta-merta adjektif kepada baris semasa. Begitu juga, nilai parameter offset tidak boleh menjadi fungsi analitik atau integer negatif.
  3. lalai – parameter ini menetapkan nilai lalai jika nilai offset yang disediakan berada di luar skop partition sasaran. Secara lalai, fungsi akan mengembalikan NULL.
  4. PARTITION BY – klausa partition_by mentakrifkan peraturan yang membahagikan keputusan yang ditetapkan kepada pelbagai bahagian. Fungsi tersebut kemudiannya digunakan pada setiap partition yang terhasil.
  5. ORDER BY – ini mentakrifkan susunan logik di mana baris dalam setiap partition digunakan.

Fungsi ini mengembalikan jenis data yang ditakrifkan dalam scalar_expression. Jika nilai yang dikembalikan ialah NULL, fungsi mengembalikan NULL.

Data Sampel

Marilah kita menggunakan beberapa pangkalan data sampel untuk menggambarkan cara terbaik untuk menggunakan fungsi petunjuk. Pertama, gunakan pertanyaan seperti yang ditunjukkan di bawah:



GUGURKAN PANGKALAN DATA JIKA WUJUD inventori;

BUAT inventori PANGKALAN DATA;

GUNAKAN inventori;

DROP MEJA JIKA WUJUD produk;

CIPTA produk JADUAL (
kunci utama identiti int id bukan nol,
nama_produk varchar(100),
pengilang varchar(50),
kuantiti int bukan nol,
harga int lalai 0,
dalam_stok sedikit
);
masukkan ke dalam produk (nama_produk, pengilang, kuantiti, harga, dalam_stok)
nilai ('Apple iPad Air', 'Apple', 100, 569.99, 1),
('Samsung Galaxy Z Flip 4', 'Samsung', 302, 1569.00, 1),
('Sony Playstation 5', 'Sony',  500, 499.99, 1),
('Samsung Galaxy Watch-5 Pro', 'Samsung', 600, 209/.99, 1),
('Apple Watch Siri 6', 'Apple', 459, 379.90, 1),
('Apple AirPods Pro', 'Apple', 200, 199.99, 1),
('55' Kelas S95B OLED 4K Smart TV', 'Samsung', 900, 1999.90, 1),
('Skrin Permainan Melengkung Mini-LED Odyssey Ark Quantum', 'Samsung', 50, 2999.90, 1);

Jadual yang terhasil adalah seperti yang ditunjukkan:

Contoh 1 – Menggunakan Fungsi lead() SQL Server ke atas Set Hasil

Contoh di bawah menggunakan fungsi lead() untuk mengembalikan harga produk seterusnya.

pilih
Nama Produk,
pengilang,
kuantiti,
harga,
plumbum(harga,
1) lebih (
pesanan mengikut kuantiti)
daripada
produk;

Jadual terhasil:

Oleh kerana tiada baris dari lajur terakhir, fungsi mengembalikan NULL.

Contoh 2 – Menggunakan Fungsi lead() SQL Server Over Set Partition

Kami juga boleh mengambil produk seterusnya dalam partition tertentu. Sebagai contoh, kita boleh membahagikan data di atas berdasarkan pengilang dan menggunakan fungsi lead() dalam setiap partition

Contoh ilustrasi adalah seperti yang ditunjukkan:

pilih
Nama Produk,
pengilang,
kuantiti,
harga,
plumbum(harga,
1) lebih (
partition mengikut pengilang
pesanan mengikut kuantiti)
daripada
produk;

Pertanyaan di atas harus membahagikan baris berdasarkan pengilang dan mengambil harga seterusnya untuk nilai dalam setiap partition.

Dalam kes ini, terdapat tiga partition.

Kesimpulan

Dalam siaran ini, anda memahami blok binaan fungsi lead() dalam SQL Server. Anda juga mempelajari cara menggunakan fungsi lead() ke atas set hasil dan partition.