sql >> Database teknologi >  >> RDS >> Mysql

Kan du tilføje en hvis-erklæring i ORDER BY?

Nå, du kan bruge IF funktion i MySQL (Bemærk vægten på function da der også er en ikke-relateret IF erklæring )...:

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

Men i dette tilfælde ser det ud til, at det bedre valg (fra et fleksibilitetssynspunkt) ville være CASE erklæring :

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

Bemærk, at hele blokken fra CASE til END er at betragte som en enkelt "enhed". Resultatet er det, du prøver at sortere efter (Derfor er ASC kommer efter blokken i stedet for inde i den)...



  1. oratop

  2. Er der en SQL Server Profiler til SQL Server Express?

  3. JDBC Opret tabel Eksempel Brugserklæring

  4. 5 ting at vide om 'Windows 10 S'