Comment pourrais-je faire quelque chose comme ça? J'essaie de comprendre cela depuis environ une heure. Très frustrant. Toute aide serait géniale!
Vous pouvez utiliser une sous-sélection:
SELECT row
FROM table
WHERE id=(
SELECT max(id) FROM table
)
Notez que si la valeur de max(id)
n'est pas unique, plusieurs lignes sont renvoyées.
Si vous ne voulez qu'une seule de ces lignes, utilisez la réponse de @ MichaelMior,
SELECT row from table ORDER BY id DESC LIMIT 1
Tu pourrais aussi faire
SELECT row FROM table ORDER BY id DESC LIMIT 1;
Cela triera les lignes par leur ID dans l'ordre décroissant et renverra la première ligne. Cela revient à retourner la ligne avec l'ID maximum. Bien entendu, cela suppose que id
est unique parmi toutes les lignes. Sinon, il pourrait y avoir plusieurs lignes avec la valeur maximale de id
et vous n'en obtiendrez qu'une.
SELECT *
FROM table
WHERE id = (SELECT MAX(id) FROM TABLE)
Vous ne pouvez pas donner order by
car order by
effectue une "analyse complète" sur une table.
La requête suivante est meilleure:
SELECT * FROM table WHERE id = (SELECT MAX(id) FROM table);
Essayez avec ça
SELECT top 1 id, Col2, row_number() over (order by id desc) FROM Table