Duplicate possible:
Comment écrire un “LIMIT” (MySQL) dans SQL Server?
Comment puis-je changer ma requête avec LIMIT Inside pour un serveur SQL?
Code:
SELECT apretiz FROM tableApoint WHERE price = '$newprice' LIMIT 5;
Beaucoup de choses ne fonctionnent pas alors il suffit de demander de l'aide
Et comment puis-je changer LIMIT 5,10 par exemple? Puis-je utiliser TOP pour cela?
Comme je l'ai dit il y a moins d'une heure, vous devez utiliser TOP! (LIMIT est utilisé pour MYSQL)
Essayez donc de supprimer LIMIT 5
et faites SELECT TOP(5) apretiz
.
Aussi, essayez d’ajouter ordre par (même raison qu’avant).
S'il vous plaît faire une recherche avant de demander des choses. Lien vers une ancienne question
À partir de SQL Server 2012, vous pouvez écrire
...
ORDER BY thisColumn, thatColumn
OFFSET 5 ROWS FETCH NEXT 5 ROWS ONLY
Utilisez le mot clé TOP
:
SELECT TOP 5 pretiz
FROM tableApoint WHERE price = '$newprice'
L'utilisation de LIMIT 5, 10 ne fait pas partie de SQL Standard et n'est disponible que dans MySQL.
Vous pouvez utiliser ROW_NUMBER()
pour SQL en tant que solution temporaire et vous obtiendrez le même résultat souhaité.
SELECT * FROM (
SELECT *, ROW_NUMBER() OVER (ORDER BY name) as row FROM tableApoint
) a WHERE row >= 5 and row <= 10
Si vous utilisez SQL Server 2005 et versions ultérieures, vous pouvez utiliser la fonction ROW_NUMBER
pour affecter des numéros uniques à vos lignes, puis sélectionner la plage de valeurs dans la sortie.
Script :
CREATE TABLE table1
(
textvalue VARCHAR(10) NOT NULL
);
INSERT INTO table1 (textvalue) VALUES
('i'),
('a'),
('e'),
('h'),
('c'),
('l'),
('g'),
('m'),
('d'),
('k'),
('j'),
('f'),
('b'),
('n');
;WITH letters as
(
SELECT textvalue
, ROW_NUMBER() OVER(ORDER BY textvalue) rownum
FROM table1
)
SELECT textvalue
FROM letters
WHERE rownum BETWEEN 6 AND 10;
Sortie :
TEXTVALUE
---------
f
g
h
i
j