Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Czy możesz dodać oświadczenie if w ORDER BY?

Cóż, możesz użyć IF funkcja w MySQL (zwróć uwagę na nacisk na function ponieważ istnieje również niepowiązany IF oświadczenie )...:

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

Jednak w tym przypadku wydaje się, że lepszym wyborem (z punktu widzenia elastyczności) byłoby CASE oświadczenie :

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

Zauważ, że cały blok z CASE do END należy traktować jako pojedynczą „jednostkę”. Wynikiem tego jest to, według czego próbujesz sortować (stąd dlaczego ASC pojawia się za blokiem, a nie wewnątrz niego)...



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Powtórz ciąg wiele razy w MySQL – REPEAT()

  2. Jak wstawić znak mb4 utf-8 (emotikony w ios5) w mysql?

  3. Usunąć duplikaty za pomocą tylko zapytania MySQL?

  4. Zdalny dostęp do serwera MySQL przez tunel SSH

  5. Jak mogę wyliczyć możliwe wartości w bazie danych MySQL?