我需要这样的ORDER BY来列出我的简历数据:当ep.data_termino是null时,它意味着该职务是您当前的工作(您可以有多个当前的工作),然后我必须首先列出它们。然后,我需要列出所有由ep.data_termino ASC订购的其他产品。
IF是我唯一的选择。我知道在查询中使用IFs从来不是一个好的选择(至少我是这么学到的),所以我在这里问是否有更好的解决方案。
SELECT ep.nome_empresa, ep.data_inicio, ep.descricao, ct.nome as contratacao_tipo_nome, p.nome as profissao_nome,
IF(ep.data_termino IS NULL,NOW(),ep.data_termino) as data_term
FROM experiencia_profissional as ep
JOIN contratacao_tipo as ct ON ct.codigo = ep.codigo_contratacao_tipo
JOIN profissao as p ON p.codigo = ep.codigo_profissao
JOIN experiencia_profissional_membro as epm ON epm.codigo_experiencia_profissional = ep.codigo
JOIN membro as m ON m.codigo = epm.codigo_membro
JOIN usuario as u ON u.codigo_membro = m.codigo
WHERE u.codigo = 124
ORDER by data_term DESC, ep.data_inicio ASC发布于 2012-02-10 03:31:20
尝试:
ORDER BY ep.data_termino IS NOT NULL, ep.data_termino DESC, ep.data_inicio ASC顺便说一下,
IFNULL(ep.data_termino,NOW()) 是一种更清晰的表达方式:
IF(ep.data_termino IS NULL,NOW(),ep.data_termino)https://codereview.stackexchange.com/questions/8817
复制相似问题