Jeg har bennytet LIMIT i mine mysql querys, men da jeg kort skal arbejde i msSQL, er jeg stødt ind i en fejl.
SELECT * FROM arrangementer LIMIT 0,5
Denne virker fint i mysql men ikke i mssql.
Hvad mon jeg gør her?
Du kan ikke lave en helt nøjagtig konvertering af LIMIT men hvis du f.eks. har et index at sortere efter, kan det gøres på følgende måde:
-- Denne sql sætning svare til LIMIT 5, 5 (tabel = arrangementer).
SELECT TOP 5 * FROM tabel WHERE id IN
(
SELECT TOP 5 Id FROM tabel WHERE id IN
(
SELECT TOP 10 Id FROM tabel ORDER BY id ASC
)
ORDER BY id DESC
)
ORDER BY id
Forklaring (LIMIT start, antal):
1. SELECT TOP 10 Id FROM tabel ORDER BY id ASC
TOP 10 = (start+antal)
2. SELECT TOP 5 Id FROM tabel WHERE id IN
TOP 5 = (antal)
3. SELECT TOP 5 * FROM tabel WHERE id IN
TOP 5 = (antal)
/Michael.