none
¿Cómo puede hacer una consulta en la que primero se filtre y luego se ordene? RRS feed

  • Pregunta

  • Buenos días.

    Supongamos la siguiente consulta:

    select * from Paises

    digamos que la consulta encontró 30 resultados , primero necesitaría ordenar alfabeticamente ,  luego necesitaría las resultados del 10 al 15 por ejemplo.
    ¿Cómo puedo hacer esto?

    Gracias.

    lunes, 22 de agosto de 2016 20:44

Respuestas

  • KrixthPro,

    Puedes utilizar la función ROW_NUMBER() sobre un conjunto para luego filtrar por dicha columna:

    WITH T (idPais, Pais, Fila) AS
    (
    	SELECT
    		t.idPais,
    		t.Pais,
    		ROW_NUMBER() OVER(ORDER BY t.Pais) Fila
    	FROM
    		Paises t
    )
    SELECT t1.idPais, t1.Pais FROM T t1 WHERE t1.Fila BETWEEN 10 AND 15;
    GO

    En el ejemplo anterior, el criterio de orden es el valor de la columna [Pais].


    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.

    lunes, 22 de agosto de 2016 20:50

Todas las respuestas

  • KrixthPro,

    Puedes utilizar la función ROW_NUMBER() sobre un conjunto para luego filtrar por dicha columna:

    WITH T (idPais, Pais, Fila) AS
    (
    	SELECT
    		t.idPais,
    		t.Pais,
    		ROW_NUMBER() OVER(ORDER BY t.Pais) Fila
    	FROM
    		Paises t
    )
    SELECT t1.idPais, t1.Pais FROM T t1 WHERE t1.Fila BETWEEN 10 AND 15;
    GO

    En el ejemplo anterior, el criterio de orden es el valor de la columna [Pais].


    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.

    lunes, 22 de agosto de 2016 20:50
  • Esa era la respuesta que necesitaba, gracias.
    lunes, 22 de agosto de 2016 21:06