Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 20-05-2003
ebeltete ebeltete is offline
Miembro
 
Registrado: may 2003
Posts: 236
Poder: 22
ebeltete Va por buen camino
invertir una tabla

tengo un query (select * from .....) el cual me da el resultado de una tabla que no tiene campo clave, necesito invertir ese query o sea si el resultado es:
1
2
3
4
me aparezca:
4
3
2
1
estoy hablndo de los registros no de los campos,lo hice creando una tabla temporal (tabla2) y haciendo
for i:=1 to tabla1.recordcount do
begin
tabla1.recno:=i;
tabla2.insert;
tabla2['nombre']:=tabla1['nombre'];
tabla2.post;
end;
no se si soy claro, quisiera saber si hay alguna forma de hacerlo con sql de un query, uso tablas paradox 7, gracias
Responder Con Cita
  #2  
Antiguo 20-05-2003
Ruben_Cu Ruben_Cu is offline
No confirmado
 
Registrado: oct 2003
Ubicación: Mariel, Cuba
Posts: 271
Poder: 0
Ruben_Cu Va por buen camino
Hola ebeltete, no se si te servirá pero debías probar usando la cláusula ORDER BY nombre delcampo desc.
si en tu tabla algún campo sigue un orden ya sea numerico o por fecha podrías proceder en tu select * from..... where ...... order by campo desc.
Y con el ORDER BY campo asc o por omisión invierte de nuevo el orden.
Por aquí anda un hilo reciente sobre el tema buscalo para mas detalles.
Espero por ahí ande lo que necesitas
Saludos
Responder Con Cita
  #3  
Antiguo 20-05-2003
ebeltete ebeltete is offline
Miembro
 
Registrado: may 2003
Posts: 236
Poder: 22
ebeltete Va por buen camino
gracias por la ayuda, pero order by no me sirve pues la tabla no esta ordenada por ningun campo
Responder Con Cita
  #4  
Antiguo 20-05-2003
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
En Oracle, supongo que en otros motores también, puedes hacer una "chanchada" como esta:
Código:
SELECT SE_NOMBRE,... 
FROM ( SELECT ROWNUM ORDEN, SE_NOMBRE, ...
               FROM USE_USUARIOS )
ORDER BY ORDEN DESC
Te lo informo pero no te lo recomiendo, Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.

Última edición por delphi.com.ar fecha: 20-05-2003 a las 02:31:05.
Responder Con Cita
  #5  
Antiguo 22-05-2003
ebeltete ebeltete is offline
Miembro
 
Registrado: may 2003
Posts: 236
Poder: 22
ebeltete Va por buen camino
no logro encontrar la solucion, no me funciona select * from(select ...) where...
esto por que se debe?? por mi version de Delphi? tengo Delphi 5. Por las tablas??? uso paradox.
No puedo usar order by porque no la puedo ordenar por ninguno de los campos, tengo que lisa y llanamente "darla vuelta", o sea que recno1=recordcount
recno2=recordcount-1
recno3=recordcount-2
.........
tal vez no exista forma
Responder Con Cita
  #6  
Antiguo 22-05-2003
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Lo que tienes que hacer si quieres tener la tabla en orden natural y en el orden inverso, es crear un campo autoincrementado.

De esta manera si se ordena por este campo tienes el orden natural

Order by MiCampo

u

Order by MiCampo Desc

Un Saludo.
Responder Con Cita
  #7  
Antiguo 22-05-2003
Avatar de guillotmarc
guillotmarc guillotmarc is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva
Posts: 2.638
Poder: 24
guillotmarc Va por buen camino
También pienso que tienes que añadir un campo para poder ordenar. Ya sea un autonumérico, o un campo fecha donde guardar la fecha-hora de introducción.

De esta forma es trivial sacar un resultado u otro.

NOTA : Piensa además que una consulta que no tenga un order by especificado, no tiene porqué salir en orden natural. Este es un concepto que no existe en SQL. Según el estándar, puede salir cada vez en un orden distinto.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no).
Responder Con Cita
  #8  
Antiguo 22-05-2003
ebeltete ebeltete is offline
Miembro
 
Registrado: may 2003
Posts: 236
Poder: 22
ebeltete Va por buen camino
Agradezco vuestras respuestas, pero el tema no puedo con autoincrement ni usando un campo clave, es que tengo una tabla la que el usuario crea insertando registros de la manera que el quiera, (es un play list) o sea: tengo una tabla titulos de donde el usuario saca el tema a insertar en el playlist y lo inserta en el lugar que el quiera en otra tabla, esta ultima es la que quiero "dar vuelta", gracias.
Responder Con Cita
  #9  
Antiguo 23-05-2003
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Poder: 25
__cadetill Va por buen camino
Si es un PlayList, la tabla tampoco sera muy granda. Siempre puedes recorrer los registros en orden inverso

Código:
 
Tabla.Last;
where not Tabla.BOF do
 begin
      // Lo que sea como por ejemplo meterlos en un ListView
      
      Tabla.Prior;
 end;
Espero te sirva
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 19:51:51.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi