Esta é uma tabela de amostra:
name | cat
----------
hugo | sal
bob | mgr
mike | dev
jeff | mgr
john | dev
Ambos name
e cat
sendo Varchar.
cat
reflete uma categoria para esses nomes, mas eu gosto de atribuir uma prioridade a eles, seguida de uma consulta para listar todos eles, ordenada por essa prioridade.
Que maneiras são possíveis? Eu poderia extrair cat
para uma segunda tabela, criar uma chave estrangeira etc. Mas, como meu aplicativo é muito simples e a estrutura pode ser inalterável: Quais são as possibilidades para listar os mgr
nomes primeiro, seguidos pelos dev
nomes, seguidos pelos sal
nomes ?
case
expressão (como é chamada) é válida em qualquer lugar em que uma coluna possa ser especificada; eb) a expressão pode ser ligeiramente simplificada paracase `cat` when 'mgr' then 1 when 'dev' then 2 else 3 end