Pilih nilai minimum dengan cekap daripada berbilang lajur
Dalam jadual dengan berbilang lajur, selalunya perlu mendapatkan nilai minimum dalam lajur ini untuk setiap baris. Ini boleh dicapai dalam pelbagai cara.
Kaedah KES/BILA
Jika bilangan lajur yang akan diproses adalah kecil, pernyataan CASE/WHEN menyediakan penyelesaian yang mudah dan cekap. Dengan menilai setiap lajur dan memilih nilai minimum sebagai lajur TheMin anda boleh mendapatkan hasil yang diingini. Berikut ialah contoh:
<code class="language-sql">SELECT Id, CASE WHEN Col1 < Col2 AND Col1 < Col3 THEN Col1 WHEN Col2 < Col1 AND Col2 < Col3 THEN Col2 ELSE Col3 END AS TheMin FROM YourTableNameHere</code>
Kaedah ini mudah dan mudah serta sesuai untuk situasi di mana bilangan lajur adalah terhad.
Fungsi PALING KURANG
Untuk senario yang lebih kompleks yang melibatkan berbilang lajur, fungsi LEAST menyediakan penyelesaian yang mudah:
<code class="language-sql">SELECT Id, LEAST(Col1, Col2, Col3) AS TheMin FROM YourTableNameHere</code>
Fungsi LEAST menilai semua lajur yang ditentukan dan mengembalikan nilai minimum antara lajur tersebut. Pendekatan ini menghapuskan keperluan untuk pernyataan bersyarat yang kompleks dan menyediakan penyelesaian yang ringkas.
Fungsi ROW_NUMBER
Fungsi ROW_NUMBER boleh digunakan apabila memproses sejumlah besar lajur atau apabila pemprosesan tambahan diperlukan. Dengan mengisih baris berdasarkan nilai terkecil, anda boleh memilih baris kedudukan tertinggi dengan mudah menggunakan subkueri:
<code class="language-sql">SELECT Id, TheMin FROM ( SELECT Id, Col1, Col2, Col3, ROW_NUMBER() OVER (PARTITION BY Id ORDER BY LEAST(Col1, Col2, Col3)) AS RowNum FROM YourTableNameHere ) AS Subquery WHERE RowNum = 1</code>
Pendekatan ini memberikan fleksibiliti, membolehkan operasi yang lebih kompleks seperti menapis atau mengumpulkan data dilakukan sebelum mendapatkan nilai minimum.
Ringkasan
Cara terbaik untuk memilih nilai minimum antara berbilang lajur bergantung pada keperluan khusus senario. Untuk senario mudah dengan bilangan lajur yang terhad, pernyataan CASE/WHEN menyediakan penyelesaian yang mudah. Untuk senario yang lebih kompleks atau apabila berurusan dengan sejumlah besar lajur, fungsi LEAST atau fungsi ROW_NUMBER menyediakan pilihan yang lebih maju dengan prestasi dan fleksibiliti yang lebih baik.
Atas ialah kandungan terperinci Bagaimana Mencari Nilai Minimum Merentasi Berbilang Lajur dalam Jadual dengan Cekap?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!