Gunakan SQL untuk mencari jurang dalam menjalankan kaunter
Apabila bekerja dengan jadual data yang mengandungi lajur pembilang yang sedang berjalan, anda mungkin perlu mengenal pasti nilai jujukan yang hilang dalam pembilang ini. Dalam SQL, tugas ini boleh dicapai dengan cekap menggunakan gabungan teori set dan teknik pengisihan.
Untuk menentukan jurang pertama dalam lajur kaunter, kami menggunakan operator NOT EXISTS bersama-sama dengan subkueri untuk menapis baris dengan nilai berturut-turut. Ini memastikan kami mengasingkan baris dengan urutan yang tiada. Kami kemudiannya mengasingkan jurang pertama yang ditemui dengan mengisih baris dalam tertib menaik menggunakan klausa ORDER BY.
MySQL dan PostgreSQL:
<code class="language-sql">SELECT id + 1 FROM mytable mo WHERE NOT EXISTS ( SELECT NULL FROM mytable mi WHERE mi.id = mo.id + 1 ) ORDER BY id LIMIT 1</code>
SQL Server:
<code class="language-sql">SELECT TOP 1 id + 1 FROM mytable mo WHERE NOT EXISTS ( SELECT NULL FROM mytable mi WHERE mi.id = mo.id + 1 ) ORDER BY id</code>
Oracle:
<code class="language-sql">SELECT * FROM ( SELECT id + 1 AS gap FROM mytable mo WHERE NOT EXISTS ( SELECT NULL FROM mytable mi WHERE mi.id = mo.id + 1 ) ORDER BY id ) WHERE rownum = 1</code>
ANSI (semua pangkalan data disokong, tetapi kurang cekap):
<code class="language-sql">SELECT MIN(id) + 1 FROM mytable mo WHERE NOT EXISTS ( SELECT NULL FROM mytable mi WHERE mi.id = mo.id + 1 )</code>
DBMS dengan fungsi tetingkap gelongsor:
<code class="language-sql">SELECT -- TOP 1 -- Uncomment above for SQL Server 2012+ previd + 1 FROM ( SELECT id, LAG(id) OVER (ORDER BY id) previd FROM mytable ) q WHERE previd <> id - 1 ORDER BY id -- LIMIT 1 -- Uncomment above for PostgreSQL</code>
Dengan memanfaatkan teknik ini, anda boleh mengenal pasti nilai yang hilang dengan berkesan dalam lajur pembilang berjujukan dalam SQL untuk melaksanakan analisis data dan tugas penyelenggaraan dengan cekap.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Cari Nilai Hilang Pertama dalam Lajur Kaunter Berjujukan Menggunakan SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!