Order by restringido
Hola a todos.
Tengo una sentencia en SQL que me arroja perfectamente los registros. Mi duda es si existe una forma de ordenarlos por un numero de un campo pero indicandolo yo que quiero primero...por ejm primero que me ponga todos los 7 despues todos los 1 despues todos 4 asi. num nombre apell 7 Rober lopez 7 juan guitierrez 1 lupe esparza 1 chucha godinez 4 ... ... 4 ... ... Espero que se entienda mi duda. Gracias a todos. |
Hasta donde conosco NO.
Tenes que definir un criterio de ordenamiento. Cual seria el sentido de ordenar los registros por ejemplo: el 7, 1, 4, 2, 3...Tiene que exisiter una relación entre el campo que queres ordenar. Que es lo que tenes en mente ? Por ahi hay otro modo de hacerlo. Vilte Alejandro. |
Esque el criterio me lo definen a mi asi. Por necesidad, y no es ordenado de mayor a menor ni nada por el estilo.
Entonces..no se podra? |
Hacé la consulta, usá una tabla auxiliar con un ID (que serviría de ordenación) y recorré la consulta con un for, dándole desde un vector el orden cada vez que lo ingresás en la tabla temporal
ej: vector(7,1,4) id Nº Nombre 1 7 Rober lopez 2 1 lupe esparza 3 1 chucha godinez 4 4 ... 5 4 ... Si la ordenación es siempre igual mucho mejor porque el vector es siempre igual El id serviría como índice primario y daría la ordenación de como lo introdujiste en la nueva taba. Saludos |
No serviria poner otro campo mas en la misma tabla con el nombre por ej. OrdenVisualizacion y ordenas por ese campo? que los usuarios cargen dicho valor? al fin y al cabo, son ellos los unicos que saben como lo quieren ver y vos necesitas de alguna manera tener una referencia de como ordenar, pues que en vez de decirtela la definan por sistema y todos contentos. en el listado o reporte no muestras ese campo pero si lo utilizas en el order by.
SALUDOS!!! |
Esa idea me gusta Dany, en mi caso seria lo mas rapido. Pero entonces queda descartado por codigo?
Muchas gracia por contestar |
Cita:
A mi criterio estarías abriendo las posibilidades a que ocurran muchos fallos, hay que dejarle hacer a los usuarios lo menos posible, ya que seguramente se van a equivocar, y cuando se equivoquen van a llamarte porque los datos salen mal. Y que alguno me lo refute. Aparte con la pérdida de productividad que lleva acordarse en que lugar uno quiere que salga el registro. Hablo por hablar porque no se que tipo de aplicación y a que está orientada, pero para mí el usuario tiene que decidir menos por los datos y solamente se debe dedicar a la entrada y salida de los mismos, no a la lógica del programa, que para eso estás vos. Además lo hacés una vez y te sacás miles de problemas; y al finalizarlo no hay satisfacción más grande que verlo funcionando. |
Zeta: Segun tu metodo, vos con que criterio cargarias el orden en la tabla auxiliar?, no es que al fin y al cabo estas definiendo un orden?, acaso lo fijarias? , que pasa si por alguna razon deciden cambiar el orden??, pues ahi seguro que te llaman y no para preguntarte como se cambia, si no para que te llegues a la empresa y lo cambies a mano. Que pasa cuando se agreguen nuevos registros?? en que orden saldrian?? y cuando se eliminan?? ordenando una consulta SQL con un FOR luego de realizada? , No seria mejor unir la tabla auxiliar con la real y mostrar ordenado por el campo de la tabla auxiliar en vez de valerse del for? (en cuyo caso estaria mal NORMALIZADO pero seria la misma solucion que planteo yo). Sin animos de ofender y agradeciendo el aporte que me han dado todos los foristas a veces veo que el foro se desvirtua y se contesta ( y tambien se pregunta) sin criterio.
|
Cita:
El tipo de respuesta que uno hace es directamente proporcional al tipo de pregunta. Existen muchas preguntas a hacer: el orden debe ser fijo? el número de datos también? el tipo de datos cuál es? Existen 10 a la n soluciones al problema. Además si cambian el tipo de ordenación por algún motivo va a ser por culpa del enfoque que le dio el que te encargó el programa y no porque lo hayas programado en una forma tal que el usuario tenga que manejar muchas variables y cometa muchos errores en la entrada de datos. No te ofendas ni te pongas a la defensiva Dany, no fue mi intención ofenderte o algo por el estilo, y si por las dudas te ofendí te pido disculpas, es mi punto de vista y nada más. Además todo buen programa sino tiene una base de datos normalizada es como estar construyendo una casa de ladrillos sobre arena, un día se caerá. Bye:D |
Asi es, todos felices y contentos Gracias a Los dos por tomarse el tiempo
y contestar. Y perdonen si mi pregunta no fue lo sufisientemente clara. Gracias. |
La franja horaria es GMT +2. Ahora son las 01:35:03. |
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