FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
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 |
#2
|
|||
|
|||
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 |
#3
|
|||
|
|||
gracias por la ayuda, pero order by no me sirve pues la tabla no esta ordenada por ningun campo
|
#4
|
||||
|
||||
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
__________________
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. |
#5
|
|||
|
|||
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 |
#6
|
||||
|
||||
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. |
#7
|
||||
|
||||
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). |
#8
|
|||
|
|||
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.
|
#9
|
|||
|
|||
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; |
|
|
|