Ver Mensaje Individual
  #5  
Antiguo 23-02-2019
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.911
Reputación: 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