Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo Hace 4 Días
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Posts: 1.354
Poder: 19
Angel.Matilla Va por buen camino
Modificar resultado de un query

Para una base de datos en FB 2.5.6 tengo este query:
Código SQL [-]
SELECT 1 Origen, Disco, Registro, Titulo_Cine FROM Cine WHERE Registro IN (781,905)
Esa tabla Cine tiene declarados dos índices: el primario (ALTER TABLE TITULOS ADD CONSTRAINT PK_TITULOS PRIMARY KEY (TIPO,REGISTRO)) y otro sobre el título (CREATE INDEX TITULOS ON TITULOS(TIPO,TITULO_INDEX)).
Independientemente de como ponga la clausula IN (781,905 ó 905,781) y de si ese índice sobre el título está activo o no, el resultado del query es siempre el mismo:

y me gustaría que el resultado respetara el orden de la clausula IN, en el sentido de mostrarlos en el mismo orden que esté hecha la declaración.
Responder Con Cita
  #2  
Antiguo Hace 4 Días
lucho6007 lucho6007 is offline
Miembro
 
Registrado: ene 2009
Ubicación: Junín, pcia de BsAs, Argentina
Posts: 78
Poder: 16
lucho6007 Va por buen camino
Hola Ángel, la cláusula IN es de inclusión o no en la respuesta del query. Es algo así como un WHERE.
Si vos necesitás que los registros aparezcan ordenados, tenés que usar ORDER BY en el query.


Saludos
Responder Con Cita
  #3  
Antiguo Hace 4 Días
marco3k marco3k is offline
Miembro
 
Registrado: feb 2015
Posts: 75
Poder: 10
marco3k Va por buen camino
Coincido con Lucho, la clausula IN no hace ningún tipo de ordenación, para eso esta la clausula "order by", tu consulta sería así:

Código SQL [-]
SELECT 1 Origen, Disco, Registro, Titulo_Cine FROM Cine WHERE Registro IN (781,905) order by Registro
Responder Con Cita
  #4  
Antiguo Hace 3 Días
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Posts: 1.354
Poder: 19
Angel.Matilla Va por buen camino
Gracias por las respuestas. El sentido de la clausula IN lo tengo clarísimo. El problema es que no necesariamente el orden ha de ser el del número de registro (no voy a entrar en las razones para ello) y por lo tanto ese order by Registro puede o no valerme. Seguiré investigando.
Responder Con Cita
  #5  
Antiguo Hace 3 Días
marco3k marco3k is offline
Miembro
 
Registrado: feb 2015
Posts: 75
Poder: 10
marco3k Va por buen camino
Otra forma que se me ocurre para que se ordene de la forma que deseas es usando consultas separadas y luego los unes, mas o menos asi:
Código SQL [-]
SELECT 1 Origen, Disco, Registro, Titulo_Cine FROM Cine WHERE Registro = 781
UNION 
SELECT 1 Origen, Disco, Registro, Titulo_Cine FROM Cine WHERE Registro = 905
Puede alternar el numero de registro 781 abajo y 905 arriba y así saldrá

Última edición por marco3k fecha: Hace 3 Días a las 21:17:11.
Responder Con Cita
  #6  
Antiguo Hace 3 Días
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.115
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Es una locura
Responder Con Cita
  #7  
Antiguo Hace 3 Días
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Posts: 1.354
Poder: 19
Angel.Matilla Va por buen camino
Cita:
Empezado por marco3k Ver Mensaje
Otra forma que se me ocurre para que se ordene de la forma que deseas es usando consultas separadas y luego los unes, mas o menos asi:
Código SQL [-]
SELECT 1 Origen, Disco, Registro, Titulo_Cine FROM Cine WHERE Registro = 781
UNION 
SELECT 1 Origen, Disco, Registro, Titulo_Cine FROM Cine WHERE Registro = 905
Puede alternar el numero de registro 781 abajo y 905 arriba y así saldrá
Tampoco. Hace lo mismo que con el IN, pero me has dado una pista. Gracias
Responder Con Cita
  #8  
Antiguo Hace 3 Días
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Posts: 1.354
Poder: 19
Angel.Matilla Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Es una locura
Sin lugar a dudas. Soy especialista en complicarme la vida.
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Recorrer resultado de query. darkone2k4 Conexión con bases de datos 5 12-10-2011 19:45:02
Modificar datos que son resultado de una consulta TIBquery (VIH)Lestat SQL 7 03-07-2005 00:12:50
Resultado de un query en Delphi MRang14 SQL 3 18-11-2004 00:49:57
Usar el resultado de un Query ramonibk MS SQL Server 3 02-09-2004 13:54:00
Modificar resultado de query interbase/firebird gescoto99 Firebird e Interbase 5 21-04-2004 21:32:59


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


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