SQL: Wählen Sie den niedrigsten Wert, der noch nicht existiert

8

In Tabelle A habe ich eine int-Spalte.

Ist es möglich, nur eine select-Anweisung zu verwenden, um den Minimalwert in der Spalte zu wählen, die NICHT EXISTIERT und größer als 0 ist?

Wenn die Spalte beispielsweise die Werte 1,2,9 hat, gibt die SELECT-Anweisung 3 zurück. Wenn die Spalte 9,10,11 hat, wird 1 zurückgegeben.

Ich kann dies mit einer temporären Tabelle oder mit einer Schleife erreichen, aber ich frage mich, ob ich das mit einer select-Anweisung machen kann?

Danke.

    
Bob 06.10.2010, 11:32
quelle

7 Antworten

2
%Vor%

haben eine Zahlentabelle, die von 1 bis zu Ihrem maximalen Wert (oder höher) geht

    
DForck42 06.10.2010, 19:54
quelle
1
%Vor%

Was ist damit?

    
Benoit 06.10.2010 11:35
quelle
1
%Vor%     
JNK 06.10.2010 13:01
quelle
1
%Vor%     
Vishal Kumar 20.10.2011 20:21
quelle
0

versuche das: (Aktualisiert)

%Vor%     
anishMarokey 06.10.2010 11:39
quelle
0

Probieren Sie es aus:

%Vor%     
Joe Stefanelli 06.10.2010 14:48
quelle
0

Ich habe meine Antwort von hier dupliziert >:

%Vor%

Damit werden alle Fälle behandelt, die ich mir vorstellen kann - auch keine vorhandenen Datensätze.

Das Einzige, was ich an dieser Lösung nicht mag, ist, dass zusätzliche Bedingungen doppelt enthalten sein müssen:

%Vor%

Beachten Sie auch die Kommentare zu Sperren und Parallelität - die Anforderung, Lücken zu füllen, ist in den meisten Fällen schlecht und kann Probleme verursachen. Ich hatte jedoch einen guten Grund, es zu tun: Die IDs sollen von Menschen gedruckt und getippt werden und wir wollen nach einiger Zeit keine IDs mit vielen Ziffern mehr haben, während alle niedrigen frei sind ...

>     
maf-soft 24.05.2016 09:57
quelle

Tags und Links