¿Cómo puede la consulta a continuación se puede modificar para volver siempre el miembro con MemberID = 'xxx' como la primera fila¿Ajustar consulta SQL para forzar que un registro aparezca primero?
SELECT * FROM miembros
¿Cómo puede la consulta a continuación se puede modificar para volver siempre el miembro con MemberID = 'xxx' como la primera fila¿Ajustar consulta SQL para forzar que un registro aparezca primero?
SELECT * FROM miembros
select * from Members
order by case when MemberID = XXX then 0 else 1 end
Esto debería funcionar y también le permitirá pide los artículos restantes por MemberID (Suponiendo xxx = 12 en este ejemplo)
SELECT *
FROM Members
ORDER BY CASE WHEN MemberID=12 THEN NULL ELSE isnull(MemberID,0) END
Si la columna de la memberID no puede contener valores nulos, puede salirse con la que puede realizar un poco mejor.
SELECT *
FROM Members
ORDER BY CASE WHEN MemberID=12 THEN NULL ELSE MemberID END
SELECT
CASE WHEN MemberID = 'xxx' AS 1 ELSE 0 END CASE AS magic,
*
FROM Members
ORDER BY magic DESC
La sintaxis puede variar dependiendo del db año, pero espero que usted consigue la idea.
probar esto:
SELECT * FROM Members
ORDER BY IF(x.MemberId = XXX, -1, ABS(x.MemberId))
Esto no dará ningún resultado. –
SELECT * FROM `Members` WHERE `MemberID` = '[ID]' LIMIT 1 UNION SELECT * FROM `Members`
Esto debería funcionar. Probado en mi instancia de base de datos. La identificación elegida siempre es lo primero.
No se garantiza que esto dé el resultado correcto. – Magnus
Una solución más robusta, si tiene más de un registro que debe flotar hasta la parte superior, o si tiene un pedido específico para múltiples registros, es agregar una columna ResultsOrder a su tabla, o incluso otra tabla MemberOrder (memberid, resultorder). Llene el orden de los resultados con los números grandes y ...
Select m.*
From Members m
Left Join MemberOrder mo on m.MemberID=mo.MemberID
Order by coalesce(mo.resultorder, 0) DESC
¿Qué plataforma de base de datos? – JohnFx
SQL Server 2008 – SShebly