sql >> Databasteknik >  >> RDS >> Mysql

Kan du lägga till ett if-uttalande i ORDER BY?

Tja, du kan använda IF funktion i MySQL (Observera betoningen på function eftersom det också finns en orelaterade IF uttalande )...:

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

Men i det här fallet verkar det bättre valet (ur flexibilitetssynpunkt) vara CASE uttalande :

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

Observera att hela blocket från CASE till END är att betrakta som en enda "enhet". Resultatet är det du försöker sortera mot (Därför varför ASC kommer efter blocket, snarare än inuti det)...



  1. Hur höjer man undantag i PL/SQL?

  2. Beteende av NOT LIKE med NULL-värden

  3. Ta reda på vilken valutasymbol din session använder i Oracle

  4. Använda LogMiner för att hitta aktuella ändringar