Maison > base de données > tutoriel mysql > Comment SQL peut-il identifier la première valeur manquante dans une colonne de compteur en cours ?

Comment SQL peut-il identifier la première valeur manquante dans une colonne de compteur en cours ?

Barbara Streisand
Libérer: 2025-01-13 11:06:41
original
675 Les gens l'ont consulté

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

Utilisez SQL pour trouver des lacunes dans l'exécution des compteurs

SQL fournit un mécanisme puissant pour rechercher les valeurs manquantes dans une séquence de compteurs en cours d'exécution dans une table.

Pour déterminer la première valeur manquante dans la colonne du compteur d'exécutions (par exemple, les valeurs 1, 2, 4 et 5 sont présentes, mais 3 manque), vous pouvez utiliser la technique SQL suivante :

MySQL et 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>
Copier après la connexion

SQL Serveur :

<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>
Copier après la connexion

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>
Copier après la connexion

ANSI SQL (le moins efficace) :

<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>
Copier après la connexion

Systèmes prenant en charge les fonctions de fenêtre coulissante :

<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>
Copier après la connexion

En utilisant l'une de ces techniques SQL, vous pouvez identifier efficacement les lacunes manquantes dans les colonnes des compteurs d'exécutions dans les tables SQL, quel que soit le système de base de données que vous utilisez.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal