Ich möchte minimale nubmer wählen, die nicht existiert. Beispielwert 1, dann 2, dann 3 und dann 6 .....Wählen Sie die minimale Nummer aus der Spalte, die nicht existiert
Ich versuche, diesen Code
IF not EXISTS(SELECT min(id) from table1) select...
Ich möchte minimale nubmer wählen, die nicht existiert. Beispielwert 1, dann 2, dann 3 und dann 6 .....Wählen Sie die minimale Nummer aus der Spalte, die nicht existiert
Ich versuche, diesen Code
IF not EXISTS(SELECT min(id) from table1) select...
Sie können die erste Zeile finden, wo es keine Zeile mit Id existiert + 1.
Versuchen Sie es.
SELECT TOP 1 t1.Id+1 as ID
FROM table t1
WHERE NOT EXISTS(SELECT * FROM table t2 WHERE t2.Id = t1.Id + 1)
ORDER BY t1.Id;
prüfen diese .. Online Demo HERE
Dieser Code wählt max +1 – user6615498
Auch wenn der Mindestwert 0 ist, möchte ich den nächsten Minimalwert nehmen, der 6. Dieser Code wählt -1 – user6615498
@ user6615498 Bitte überprüfen Sie die Online-Demo, die ich zur Verfügung gestellt habe. Ich denke, dass Sie Ihr gewünschtes Ergebnis durch diesen Code finden werden. –
Create a numbers table in Ihrer Datenbank, dann ist es einfach:
SELECT MIN(Numbers.n) As MinMissingId
FROM [Numbers]
WHERE NOT EXISTS
(
SELECT 1 FROM dbo.TableName t WHERE Numbers.n = t.ID
)
hier ein kleines Skript ist, das die Tabelle von Aarons Artikel kopiert erstellt:
SELECT TOP (1000000) n = CONVERT(INT, ROW_NUMBER() OVER (ORDER BY s1.[object_id]))
INTO dbo.Numbers
FROM sys.all_objects AS s1 CROSS JOIN sys.all_objects AS s2
OPTION (MAXDOP 1);
CREATE UNIQUE CLUSTERED INDEX n ON dbo.Numbers(n)
-- WITH (DATA_COMPRESSION = PAGE)
;
Falsche Syntax in der Nähe von 'Zahlen – user6615498
@ user6615498: wo? Übrigens, verwenden Sie wirklich sql-server 2000? –
Sollte ich beide Code oder nur die erste verwenden? Ja, ich benutze sql 2000 – user6615498
W Hut ist die maximale Anzahl? Laut Ihren Beispieldaten ist es 10? –
Was ist das gewünschte Ergebnis überhaupt, "1" oder "6"? –
Ich interessiere mich nicht wirklich für die maximale Anzahl, die ich immer minimal auswählen möchte, die nicht existiert. Wenn die maximale Anzahl benötigt wird, dann sagen wir, das ist 10 – user6615498