Erster Eintrag ...
-
Hi,
mit welchem (SQL)Befehl ist es möglich (unabhängig von den eingetragenen Daten) den ersten Eintrag einer SQL-Tabelle zu erhalten?Danke
-
ich hab von sowas nicht wirklich viel Ahnung, aber benutzt man dafür nicht eine LfdNr?
-
Ich weiß, aber ich habe eine vordefinierte Tabelle, die ich nicht verändern darf - ich habe schon "SELECT MIN(...)" versucht, doch das liefert irgendwie ein falsches Ergebins
-
vielleicht wenn du keinerlei 'ORDER BY' verwendest? normalerweise haben tabellen, deren einträge datumsrelavant sind, eine zeitspalte oder eine LfdNr
-
Ich habe eine ähnliche Spalte, doch die beginnt nicht bei 1, sondern bei 3 und endet bei irgendwas um 230000. Doch das sind keine fortlaufenden Werte, sondern es fehlen teilweise ein paar Werte zwischendrin. Und von diesen Werten, möchte ich den Ersten erhalten - aber MIN bringt einen falschen Wert.
-
Hmm, was hast du überhaupt für eine DB ?
-
Fast jede Datenbank bietet einen Befehl, um nur eine bestimmte Anzahl von Datensätzen zu erhalten. (TOP oder FETCH FIRST N ROWS fällt mir spontan ein).
select * from meine_tabelle
fetch first 1 rows onlyDas wäre jetzt die DB2-Lösung, bei anderen Datenbanken heisst es anders
Über den Primärschlüsel per Subselect sollte auf jeder Datenbank funktionieren. Angenommen dein Primärschlüssel wäre ID:
select * from meine_tabelle
where id = (select min(id) from meine_tabelle)
-
Hehe, schon mal mit MS SQL 7 gearbeitet ??
Nich ?
Dann würd ich sowas nicht verallgemeinern.
Wenn du dir nicht den 'Speed' ruinieren willst, kommst du über eine SP nicht rum ( mit Cursor und 'fast forward' option ), zumal sich eine 'gescheite' T-Sql Funktion nicht findet .....
Daher ist das schon nen weng 'DBS' Spezifisch würd ich meinen ...
-
afaik kennen doch sql datenbanken garkeine rangfolge der einträge -> auch keinen ersten... die werden doch nur duch z.b. ein id feld in ne reihenfolge gebracht...
-
japro -> erfasst !
Ist aber nicht alzu dramatisch, denn man kann so ziemlich alles per hand zu fuss realisieren.
Wie gesagt, wenn <SQL> seine DB verät, kann man ihm helfen .....
-
Es geht um eine Tabelle, die schon seit Ewigkeiten besteht - eine Erfassung für Personen, welche jetzt schon ca. 250000 Einträge fasst. Ursprünglich hat die Datenbank eine Zählspalte von 1 - ... gehabt, doch wurden einige Einträge gelöscht - so ist z.B. der erste Eintrag eine 3.
Ich suche nun einen Befehl, mitdem ich, wenn ich ORDER BY 'Zählspalte' machen, den ersten Eintrag auslesen kann, ohne, dass ich alle Einträge durchsuchen muss - wenn ich einfach "SELECT 'Zählspalte' FROM 'Datenbank ORDER BY 'Zählspalte'" schreibe, und die erste Zeile auslese, bekomme ich jedoch auch einen falschen Wert
Kann es sein, dass MSSQL in Datenbanken über 100000 Einträgen Fehler produziert?
-
mehrere moeglichkeiten
erstens:
SELECT * FROM Tabelle ORDER BY zaehlspalte
sollte dir die kleinste zeile als erstes zurueckliefern -> 3, bla, bla bla schaetze ich mal
keine gute methode da du den gesamten recordset uebertraegst und der hat ja 250000 zeilen wie du sagstdu kannst natuerlich auch sowas machen
select * from tabelle where zaehlspalte= (select min(zaehlspalte) from meine_tabelle)
wuerde dementsprechend nur die erste zeile zurueckliefernich habe schon alte MS SQL Systeme mit ein paar millionen datensaetzen laufen sehen - also an deinen 250k kanns nicht liegen
was bekommst du den zurueck wenn du die Statements ausfuehrst??
gomberl
-
Danke euch allen