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

 
 
Herramientas Buscar en Tema Desplegado
  #5  
Antiguo 23-02-2019
Avatar de mamcx
mamcx mamcx is online now
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.917
Poder: 25
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
Ok, vamos a ver si te entendi. El truco general es que debes proveer tu propia función de comparación (similar a https://stackoverflow.com/questions/...ustom-comparer) pero en sql. Básicamente, debes crear un campo extra que cambie la lógica que determina que es "mayor que":

Código SQL [-]
SELECT *,
CASE WHEN b <= 0 THEN (0, a) ELSE (1, a) END AS c
FROM (
    SELECT 10 as a, 1 as b
    UNION ALL
    SELECT 20,  2
    UNION ALL
    SELECT 10, -1 
    UNION ALL
    SELECT 20, -2 
)a
ORDER BY c DESC

Retorna:


Código:
a   | b  |  c
----+---+--------
 20 |  2 | (1,20)
 10 |  1 | (1,10)
 20 | -2 | (0,20)
 10 | -1 | (0,10)
__________________
El malabarista.
Responder Con Cita
 



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
Tab Order shoulder Varios 7 20-11-2012 19:30:28
Tab Order kepacha Varios 5 31-01-2005 13:32:40
Order by VRO SQL 6 31-08-2004 08:17:05
Order by ...... chutipascal Firebird e Interbase 8 24-06-2003 14:46:21
ORDER BY en FireBird FRANKER Firebird e Interbase 2 07-05-2003 11:41:02


La franja horaria es GMT +2. Ahora son las 16:41:58.


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