Microsoft SQL (MS SQL) es el SGBD usado normalmente en programas Windows y aplicaciones basadas en herramientas de Microsoft. Su sintaxis, difiere en algunos aspectos a MySQL, que es la que estoy acostumbrado a usar.

En esta ocasión, quiero limitar el resultado devuelto por una consulta SQL a X tuplas.

Por ejemplo, para limitar consultas en MySQL se realiza:

SELECT idnoticia, titular, foto, fecha
FROM noticias
WHERE mostrar = 's'
ORDER BY idnoticia DESC
LIMIT 0,20

Mientras que en MS SQL, se hace de la siguiente manera:

SELECT * FROM (SELECT ROW_NUMBER() OVER(ORDER BY idnoticia DESC) AS rn, idnoticia, titular, foto, fecha
FROM noticias
WHERE mostrar = 's')
AS alias WHERE rn >= 0 AND rn <= 20

Me parece increíble que Microsoft no haya implementado esta sintaxis a su lenguaje, ya haya que hacerlo de manera tan arcaica….