helmuthelmut2000
Goto Top

Mit LIMIT die Anzahl einer Ausgabe beschränken

[Edit Biber] Auf "gelöst" gesetzt und von *Entwicklung* nach *Datenbanken* verschoben. 6.12.2006 [/Edit]

Hallo,

Ich habe da mal wieder ein Problem,
Ich möchte die Ausgabe mit einem Select Befehl aus einer MSSQL DB Beschränken.

Ich mach das so:

$res = mssql_query("select * from Tabelle ORDER BY SpalteA DESC LIMIT 4");
$num = mssql_num_rows($res);

Mit ORDER BY SpalteA DESC sortiert er mir die SpalteA rückwärts.
Das funktioniert auch.
Aber wenn ich das mit LIMIT 4 mach, dann bringt er mir die Fehlermeldung:

Falsche Syntax in der Nähe von 'LIMIT'. (severity 15).

Muß ich das irgend wie anders schreiben?
Ich möchte das halt auf 4 Ausgaben beschränken.

Danke.

mfG
Helmut

Content-Key: 46055

Url: https://administrator.de/contentid/46055

Ausgedruckt am: 29.03.2024 um 00:03 Uhr

Mitglied: psystem
psystem 05.12.2006 um 13:12:10 Uhr
Goto Top
War der Syntax für LIMIT bei TransactSQL nicht:

LIMIT {Start-Record}, {Anzahl}

also dann z.B.:

select * from Tabelle ORDER BY SpalteA DESC LIMIT 1, 4


Bei MSSQL2000 muss man glaub ich TOP benutzen.

z.B.:
select TOP 4 * from Tabelle ORDER BY SpalteA DESC

A. Witt
Mitglied: Biber
Biber 05.12.2006 um 15:09:11 Uhr
Goto Top
Moin helmuthelmut2000 und psystem,

etwas länger, aber eigentlich lesbarer wird es unter M$SQL, wenn der TOP-x-Select um die vorhandende (unveränderte) Abfrage gewickelt wird.

-- vorhandene Abfrage
select * from Tabelle ORDER BY SpalteA DESC ;

-- "umwickelte" Abfrage:  
select TOP 4 * from 
(
select * from Tabelle ORDER BY SpalteA DESC 
) T4;

HTH Biber
Mitglied: helmuthelmut2000
helmuthelmut2000 05.12.2006 um 21:30:46 Uhr
Goto Top
Hallo,

Das mit LIMIT 1,4 geht nicht,
aber mit

TOP 4

das passt.

Danke.

Gruß
Helmut