sql >> Databáze >  >> RDS >> Mysql

MySQL ORDER BY FIELD s %

To by vám mělo poskytnout největší kontrolu:

order by
  case left(positions.colleague_position_id, 1)
    when 'A' then 1
    when 'F' then 2
    when 'T' then 3
    when 'S' then 4
    when 'C' then 5
    else 6
  end, positions.colleague_position_id

Všechny neshodné hodnoty totiž můžete poslat na požadovanou pozici (v tomto případě na konci). field() funkce vrátí 0 pro neshodné hodnoty a umístí je na začátek sady výsledků ještě před ty, které začínají A .

Kromě toho můžete také objednávat podle positions.colleague_position_id jako jsem to udělal v příkladu, takže pro mnoho positions.colleague_position_id které začínají stejným písmenem, budou stále v pořadí.



  1. Proč nemůžeme spustit uloženou proceduru v příkazu select v oracle? existuje nějaký pádný důvod?

  2. specifikující classpath pro samostatný jython

  3. SQL Server – Potřebuji se připojit, ale NENÍ rovno

  4. Měl bych používat PreparedStatements pro všechny vložky databáze v Javě?