SELECT TOP variable

Hallo Leute!

Kann mir jemand helfen?
Ich bräuchte hilfe bei einem SQL-Befehl.
Wie kann ich bei „Select Top“ ein Abfrage als Zahl angeben? ist das möglich?
Der SQL-Befehl steht bei mir in einem Kombifeld und je nachdem was die Abfrage liefert müssen Auswahlmöglichkeiten angezeigt werden.
Der Normalfall wäre ja:

SELECT TOP 10 *

Nun möchte ich nur halt an Stelle der 10 meine Abfrage stehen haben.

ist das möglich?

Gruß

Leider verstehe ich deine Frage nicht, ist ein wenig konfus gestellt!

Ich verstehe, das du anstelle der 10 einen Select haben möchtest?

also so:

SELECT TOP (SELECT ZahlenWert FROM Tabelle WHERE Feld = ?) *
FROM AndereTabelle
WHERE AnderesFeld = ?

Meinst du das so???

Hallo,

Ab MSSQL 2005 kann man Ausdrücke für TOP angeben, davor leider nur Konstanten:

select top (select 1) * from sys.syscolumns;

Für den inneren Select kann man natürlich jeden beliebigen nehmen, der einen (!) Bigint zurückgibt.

Gruß
Clemens Hoffmann

Okay. Danke.
Habe das gerade mal ausprobiert. Aber beim speichern kommt immer die Fehlermeldung, das ich ein reserviertes Wort nutze.

So sieht meine Programmierung aus:

SELECT TOP (Select Variante_anzahl FROM abfrage_var_herausfinden) *
FROM Tbl_varianten
ORDER BY tbl_varianten.id DESC

Könnt ihr vielleicht den Fehler finden und mir weiterhelfen?

Ich schließe mal, dass Access als Frontend für MSSQL verwendet wird? Oder ist das eine reine Access-DB?

Hallo LEESUMER,
tut mir leid, och bin kein SQL-Server oder MySQL Spezialist, ich bin ORACLE Spezialist. Hier heißt es wohl:
SELECT TOP number|percent column_name(s)
FROM table_name
bzw.
SELECT column_name(s)
FROM table_name
LIMIT number
Bei Oracle heißt das:
SELECT column_name(s)
FROM table_name
WHERE ROWNUM 5)
order by sal desc;

Dann kommen die 5 höchsten Gehälter heraus.
Ob der DQL Server bzw. MySQL auch eine Funktion zulassen weiß ich nicht.
Ich hoffe, damit geholfen zu haben.
Viele Grüße
Siegwin

Es gibt kein Schlüsselwort TOP bei Oracle.

Suchst Du sowas?

SELECT *
FROM (select * from … )
WHERE rownum

Kennst du Google?

„sql select top“ eintippen und auf irgendeines der Resultate klicken. z.B. hier:

http://www.w3schools.com/sql/sql_top.asp

Und das nächste Mal bitte zuerst selber suchen.

Ja genau. Nur würde ich gerne die 10 durch das Ergebnis einer Abfrage ersetzen, da die Anzahl immer variiert.
Ist das möglich?

Hi Leeesumer,

TOP 10 veranlasst SQL nur die ersten 10 Ergebnisse zurückzugeben.

DML-Befehl SELECT ==> http://www.tinohempel.de/info/info/datenbank/sql.htm

Cu Stefan

Hallo,
sorry, kann nicht ganz nachvollziehen was Du vorhast. Der SQL-Befehl im Kombifeld soll aussehen „Select TOP Variable *“ ??
Wann würde sich die Varible ändern? Wann wird was zurückgeliefert?

Gruß zurück

Hallo,

TOP ist meines Wissens keine SQL-Standardfunktion.
Was soll die Anfrage denn als Ergebnis liefern ?
Welche Datenbank (Access, MySQL, Oracle, DBS, …)
verwendest Du ?