Select, welcher die etste nicht vorhandenen Nummer zurückgibt

Krotty

Grünschnabel
Hallo,

ich hab eine Spalte namens "Test" welche mit 1, 2, 3, 4, usw. gefüllt ist. Es kann aber auch der Fall sein, dass diese die Werte 1, 2, 4, 5, usw. enthält. Meine Frage, wie bekomme ich die 3?

Dank und Gruß

Krotty
 
Da fiele mir jetzt nur eine iterative oder rekursive Vorgehensweise ein.
Für beides bräuchtest Du wohl Stored Procedures
In einer Stored Procedure gibt es wohl auch WHILE (iterativ).
Die Stored Procedure könnte sich auch immer wieder selbst aufrufen (rekursiv).
Ich habe auch schon überlegt, ob man sich nicht den internen Index der DB zurückgeben lassen kann oder irgendwie eine Range benennen kann, habe aber nichts gefunden... :(
Hört sich doch eigentlich so einfach an...
 
Also du hast eine Spalte Test die normalerweise durchnummeriert ist und du möchtes die
Datensätze haben wo es nicht der Fall ist ?

Mal eine Gegenfrage - für was braucht man das ?

aber egal:

select A.test from tabelle as A left join tabelle as B on (A.test + 1) = B.test where B.test is NULL

Sollte die 2 ausgeben wenn die 3 fehlt

Schönheitsfehler:
wenn 1 fehlt wird die nicht gefunden und der letzte Datensatz wird immer gefunden
 
Zuletzt bearbeitet:
Original geschrieben von melmager
select A.test from tabelle as A left join tabelle as B on (A.test + 1) = B.test where B.test is NULL
Das ist ja genial!
Ich habe es zwar jetzt nicht ausprobiert, aber auf so etwas wäre ich nie gekommen. Man lernt eben nie aus... :-(
 
Zurück