Bases de Datos > SQL Server

 Equivalente A Limit

<< < (3/4) > >>

A_LEX:
Algo que puede ser útil al respecto, para lograr el efecto que se plantea.

Funcionalidad ROW_NUMBER ( ) -> Una Función de Ranking en SQL Server 2005

Cito el artículo completo ya que el foro no me permite publicar enlaces.  :angry:

Saludos.


--- Citar ---Una de la novedades de SQL Server 2005 son las Funciones de Ranking que se usarán para analizar los datos obtenidos. Entre estas funciones de ranking tenemos, por ejemplo, la función ROW_NUMBER() que nos permite enumerar los resultados de una manera sencilla, es decir, nos devuelve el número secuencial para cada una de la filas de un conjunto de resultados , donde la primera fila es 1.
La sintaxis es:

                     ROW_NUMBER ( ) OVER ( [ partition_by_clause ] order_by_clause )
donde:

partition_by_clause: Divide el conjunto de resultados generado por la cláusula FROM en particiones a las que se aplica la función ROW_NUMBER.

order_by_clause: Determina el orden en el que se asigna el valor ROW_NUMBER a las filas de una partición
He aquí un ejemplo:

Esta consulta nos devolverá el ROW_NUMBER para los detalles de orden de venta en base al precio.

SELECT ROW_NUMBER() OVER( ORDER BY precio DESC ) AS nro, Cod_OrdenVenta, ID_Articulo , cant AS [Cantidad], precio
FROM Detalle_Orden_Venta

row    Cod_OrdenVenta     ID_Articulo  Cantidad     precio
------    ---------------                   ------------        --------------    -----------
1        00000015                     FX8S           1                7621.71
2        00000016                     FX8E           1                3601.77
3        00000016                     FX5P           1                 2207.87
4        00000014                     FX5G           1                 6507.82
5        00000018                     FX21            1                  631.62
6        00000019                     FX19            1                  751.62

NOTA: La cláusula OVER(ORDER BY DESC/ASC) debe usarse siempre que desee aprovecharse la funcionalidad de ROW_NUMBER, de no ser así, ROW_NUMBER no funcionará. :(


He aquí otro ejemplo, donde usamos la cláusula PARTITION para particionar resultados por el cod_grupoarticulo y luego a cada partición resultante se le aplica el ROW_NUMBER en base al stock_articulo, quedando así:

SELECT ROW_NUMBER() OVER(PARTITION BY cod_grupoarticulo ORDER BY stock_articulo ASC) AS NRO, cod_articulo,desc_articulo,cod_grupoarticulo,stock_articulo
FROM ARTICULO



NRO  cod_articulo    desc_articulo                     cod_grupoarticulo  stock_articulo
---- --------------- --------------------------------- -----------------  --------------
1    DS02            MAINBOARD 845 PEMYL               G003               -1
2    DS06            MAINBOARD 850 EV2                 G003               10
1    DS07            TECLADO 104 MULTIMEDIA32          G004               20
1    DS12            SWITCH 5 PORT 10/100, 220V        G006               26
1    DS45            MUEBLE DE OFICINA                 G007               34
1    DS76            DISCO DURO                        G008               20
1    DS07            IMPRESORA LASER                   G009               10
1    DS45            MEMORIA STICK                     G010               2
2    DS29            MEMORIA VIDEO                     G010               5
1    DS08            TINTA CANON BCI24 NEGRO           G011               12
1    DS41            WEB CAM ALTIOR MODELO B02         G012               0
1    DS74            MONITOR DE 15                     G016               6
1    DS83            IMPRESORA MATRICIAL DFX5001       G018               12
2    DS84            IMPRESORA MATRICIAL DFX8502       G018               17
3    DS21            IMPRESORA MATRICIAL FX21944       G018               48

(15 row(s) affected)


--- Fin de la cita ---

Mollense:
Muy interesante  :yes:
Abría que ver que posibilidades nos trae esto  :comp:

ElNapster:
Muy cierto ......  :rolleyes:

lencho:
no le entiendo muy bien a lo que dice A_LEX

BYTE.

JuanK:
o sea que en sql server 2005 si se puede hacer la solución que planteaba la otra vez.

http://foros.solocodigo.com/index.php?show...c=26835&st=15&#
 :smartass:

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

[*] Página Anterior

Ir a la versión completa