Rumah > pangkalan data > tutorial mysql > Bagaimanakah SQL Boleh Mengenalpasti Nilai Hilang Pertama dalam Lajur Kaunter Berjalan?

Bagaimanakah SQL Boleh Mengenalpasti Nilai Hilang Pertama dalam Lajur Kaunter Berjalan?

Barbara Streisand
Lepaskan: 2025-01-13 11:06:41
asal
680 orang telah melayarinya

How Can SQL Identify the First Missing Value in a Running Counter Column?

Gunakan SQL untuk mencari jurang dalam menjalankan kaunter

SQL menyediakan mekanisme yang berkuasa untuk mencari nilai yang hilang dalam urutan pembilang berjalan dalam jadual.

Untuk menentukan nilai hilang pertama dalam lajur run counter (contohnya, nilai 1, 2, 4, dan 5 ada, tetapi 3 tiada), anda boleh menggunakan teknik SQL berikut:

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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>
Salin selepas log masuk

ANSI SQL (paling 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>
Salin selepas log masuk

Sistem yang menyokong fungsi tetingkap gelongsor:

<code class="language-sql">SELECT previd + 1
FROM (
    SELECT id,
    LAG(id) OVER (ORDER BY id) previd
    FROM mytable
) q
WHERE previd < id
LIMIT 1;</code>
Salin selepas log masuk

Dengan menggunakan mana-mana teknik SQL ini, anda boleh mengenal pasti jurang yang hilang dengan berkesan dalam menjalankan lajur kaunter dalam jadual SQL, tanpa mengira sistem pangkalan data yang anda gunakan.

Atas ialah kandungan terperinci Bagaimanakah SQL Boleh Mengenalpasti Nilai Hilang Pertama dalam Lajur Kaunter Berjalan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan