Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

COnsulta sobre reordenar datos

Estas en el tema de COnsulta sobre reordenar datos en el foro de Bases de Datos General en Foros del Web. ¿es posible reordenar datos ya ordenados?, em refiero ha poder tomar los datos seleccionados y a esos aplicar otro order by, algo como SELECT TOP ...
  #1 (permalink)  
Antiguo 15/11/2011, 15:48
Avatar de xalupeao  
Fecha de Ingreso: mayo-2008
Ubicación: Santiago, Chile
Mensajes: 749
Antigüedad: 16 años
Puntos: 12
COnsulta sobre reordenar datos

¿es posible reordenar datos ya ordenados?, em refiero ha poder tomar los datos seleccionados y a esos aplicar otro order by, algo como

SELECT TOP 10 * FROM tabla ORDER BY id DESC --> aqui obtenemos los 10, ahora quiero esos 10 seleccionados estes ordenados por id pero ASC


¿como puedo hacer eso?
__________________
Hosting en Chile en Silverhost - La solución en Hosting en Chile.
  #2 (permalink)  
Antiguo 15/11/2011, 16:06
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: COnsulta sobre reordenar datos

SELECT TOP 10 * into #temp FROM tabla ORDER BY id DESC

select * from #temp order by id asc


Asi no te sirve???
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #3 (permalink)  
Antiguo 15/11/2011, 18:21
Avatar de xalupeao  
Fecha de Ingreso: mayo-2008
Ubicación: Santiago, Chile
Mensajes: 749
Antigüedad: 16 años
Puntos: 12
Respuesta: COnsulta sobre reordenar datos

no conocia eso, pero al parecer no es compatible con access :C
__________________
Hosting en Chile en Silverhost - La solución en Hosting en Chile.
  #4 (permalink)  
Antiguo 16/11/2011, 08:44
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: COnsulta sobre reordenar datos

busca si se pueden usar tablas temporales en access, ya que la consulta que te pase es para SQL server.

Saludos!
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #5 (permalink)  
Antiguo 16/11/2011, 14:28
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 4 meses
Puntos: 447
Respuesta: COnsulta sobre reordenar datos

Podrías intentarlo con una subconsulta, pero tampoco estoy seguro si funciona en ACCESS... sería más o menos así:

Código SQL:
Ver original
  1. SELECT * FROM (
  2. SELECT TOP 10 * FROM tabla ORDER BY id DESC) T
  3. ORDER BY T.id

Saludos
Leo
  #6 (permalink)  
Antiguo 18/11/2011, 09:34
 
Fecha de Ingreso: octubre-2011
Mensajes: 21
Antigüedad: 12 años, 6 meses
Puntos: 0
Respuesta: COnsulta sobre reordenar datos

Mmm, no tiene mucho sentido. Porque no mandas el ORDER BY inicial como ASC, me parece que te estas complicando, al final es lo mismo.
Pero en todo caso porque no pruebas creando una tabla temporal, osea un CREATE TABLE para ingresar tus 10 primeros datos, le aplicas un ORDER BY ASC, luego que los procesas ejecutas un DROP TABLE para eliminar la tabla.
Ojala te sirva
  #7 (permalink)  
Antiguo 18/11/2011, 22:12
Avatar de matanga  
Fecha de Ingreso: octubre-2007
Ubicación: España
Mensajes: 1.091
Antigüedad: 16 años, 6 meses
Puntos: 85
Respuesta: COnsulta sobre reordenar datos

Cita:
Iniciado por Ghericoh Ver Mensaje
Mmm, no tiene mucho sentido. Porque no mandas el ORDER BY inicial como ASC, me parece que te estas complicando, al final es lo mismo.
Pero en todo caso porque no pruebas creando una tabla temporal, osea un CREATE TABLE para ingresar tus 10 primeros datos, le aplicas un ORDER BY ASC, luego que los procesas ejecutas un DROP TABLE para eliminar la tabla.
Ojala te sirva
Si tiene sentido, imagina que ID almacena una secuencia indefinida de números (para el ejemplo, suponemos un momento X donde ID va del 1 al 10), y quieres obtener los 3 valores más altos, pero visualizarlos de forma ascendente.

La primera consulta, aunque devuelva correctamente los 3 valores más altos, no sirve porque los devuelve en forma descendente, es decir, 10, 9 y 8.

Código:
SELECT TOP 3 id FROM tabla ORDER BY id DESC
La segunda consulta devuelve los valores 1,2 y 3 que están en forma ascendente, pero no sirve porque no son los valores más altos.

Código:
SELECT TOP 3 id FROM tabla ORDER BY id
La tercera consulta devuelve los valores 8, 9 y 10 que están en forma ascendente y son los valores más altos, pero no sirve porque, al ser ID una secuencia de números indefinida, el resultado puede ser más o menos de 3 registros.

Código:
SELECT id FROM tabla WHERE id > 7 ORDER BY id
Las soluciones posteadas por Libras y leonardo_josue resuelven correctamente el caso, aunque por temas de rendimiento, es preferible la subconsulta a la tabla temporal.

Saludos

Etiquetas: tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:47.