sql >> Base de Datos >  >> RDS >> Mysql

¿Puede agregar una declaración if en ORDER BY?

Bueno, puedes usar el IF función en MySQL (Observe el énfasis en function ya que también hay un IF declaración )...:

ORDER BY IF(TYPE='Member', LNAME, GROUPNAME) ASC

Sin embargo, en este caso parece que la mejor opción (desde el punto de vista de la flexibilidad) sería CASE declaración :

ORDER BY 
    CASE `type` 
        WHEN 'Member' THEN LNAME 
        WHEN 'Group' THEN GROUPNAME
        ELSE 1 END 
    ASC

Tenga en cuenta que todo el bloque de CASE para END debe considerarse como una sola "unidad". El resultado es lo que está tratando de clasificar (por eso el ASC viene después del bloque, en lugar de dentro de él)...