SQL Server : 날짜별로 주문하는 방법, 날짜가
-
10-07-2019 - |
문제
여기에 흥미로운 것이 있습니다 ... 잘 설명 할 수 있기를 바랍니다 ...
SQL Server DB의 단일 테이블에 경쟁 모음이 있습니다. 나는 그들에 대해 전체 텍스트 검색을하고 있습니다. 그러나 일부 대회는 폐쇄되었으며, Open Comps 이후 에이 폐쇄 된 Comps가 나타나기를 원하지만 여전히 전체 텍스트 검색에서 얻은 순위를 존중합니다.
그래서 내가 issopen bit feild를 가지고 있다면, 나는 그들에게
ORDER BY IsOpen DESC, KEY_TBL.Rank DESC
이제 문제는 Isopen 비트 필드가 없다는 것입니다. 대신, 나는 DateTime 인 ClosedDate 필드가 있습니다.
그래서 내가 정말로해야 할 일은 다음과 같습니다.
ORDER BY (ClosingDate < GetDate()) ASC, KEY_TBL.Rank DESC
누구 든지이 작업을 수행하는 방법을 알고 있습니까?
어떤 아이디어라도 좋을 것입니다! 미리 감사드립니다.
-ev
해결책
ORDER BY
CASE
WHEN (ClosingDate < GetDate())
THEN 1
ELSE 0
END ASC,
KEY_TBL.Rank DESC
다른 팁
선택한 필드에 (닫는 데이트 <getDate ())를 추가하고 해당 필드에서 주문하십시오.
select ... , add (ClosingDate < GetDate()) as Foo
from ...
where ...
order by foo
추가 (ClosingDate <getDate ())는 허용되지 않을 수 있습니다. 그러면 사용해야합니다. if (add (closingDate <getDate ()); 1; 0)
마음으로 기능한다면 그 구문을 모르겠습니다. 찾아보세요!
제휴하지 않습니다 StackOverflow