SQL Server: Como a ordem por data, se a data for
-
10-07-2019 - |
Pergunta
Aqui está um interessante ... espero que eu possa explicar bem ...
Eu tenho uma coleção de competições em um único mesa no meu SQL Server DB. Estou fazendo uma pesquisa de texto completo sobre eles, que funciona bem. No entanto, algumas das competições estão fechados, e eu quero que essas composições fechadas para aparecer após os comps abertas, respeitando ao mesmo tempo o posto que começa a partir de pesquisa de texto completo.
Então, se eu tinha uma feild pouco IsOpen, eu os teria ordenados por
ORDER BY IsOpen DESC, KEY_TBL.Rank DESC
Agora o problema é que eu não tenho um campo pouco IsOpen. Em vez disso, eu tenho um campo ClosedDate, que é uma data e hora.
Então, o que eu realmente preciso fazer é algo como:
ORDER BY (ClosingDate < GetDate()) ASC, KEY_TBL.Rank DESC
Alguém sabe como fazer isso?
Todas as idéias seria ótimo! Agradecemos antecipadamente.
-EV
Solução
ORDER BY
CASE
WHEN (ClosingDate < GetDate())
THEN 1
ELSE 0
END ASC,
KEY_TBL.Rank DESC
Outras dicas
add (ClosingDate possivelmente adicionar (ClosingDate Eu não sei a sintaxe de que, se a função de cor, procurá-lo! select ... , add (ClosingDate < GetDate()) as Foo
from ...
where ...
order by foo