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

Printed on: April 19, 2024 at 13:04 o'clock

Member: psystem
psystem Dec 05, 2006 at 12:12:10 (UTC)
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
Member: Biber
Biber Dec 05, 2006 at 14:09:11 (UTC)
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
Member: helmuthelmut2000
helmuthelmut2000 Dec 05, 2006 at 20:30:46 (UTC)
Goto Top
Hallo,

Das mit LIMIT 1,4 geht nicht,
aber mit

TOP 4

das passt.

Danke.

Gruß
Helmut