Professor , como senhor usarida um case when com data?
exemplo: To rodando um select que puxa ano e mes, porém quando vou ordernar ele traz 2023 primeiro e não 2022
Professor , como senhor usarida um case when com data?
exemplo: To rodando um select que puxa ano e mes, porém quando vou ordernar ele traz 2023 primeiro e não 2022
Olá, Felipe, tudo bem?
Desde já peço desculpas pela demora em obter retorno.
Para ordenar datas de forma ascendente em uma query SQL utilizando CASE WHEN, você pode usar a seguinte sintaxe:
SELECT *
FROM sua_tabela
ORDER BY
CASE
WHEN data_coluna IS NULL THEN 1 --se a data for nula, ordena no final
ELSE 0 --caso contrário, ordena normalmente
END,
data_coluna ASC;
ORDER BY
, o CASE WHEN
é usado para verificar se a data na coluna é nula. Se for nula, então retorna 1, caso contrário retorna 0.ORDER BY
, a coluna de data é ordenada em ordem ascendente, ou seja, da data mais antiga para a mais recente.CASE WHEN
, então, as datas que são nulas serão ordenadas por último.Utilizando a tabela notas_fiscais utilizada no curso, a consulta ficaria assim:
SELECT *
FROM notas_fiscais
ORDER BY
CASE
WHEN data_venda IS NULL THEN 1
ELSE 0
END,
data_venda ASC;
Espero ter ajudado.
Caso surja alguma dúvida, fico à disposição.
Grande abraço e bons estudos!