문제

여기에 흥미로운 것이 있습니다 ... 잘 설명 할 수 있기를 바랍니다 ...

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)

마음으로 기능한다면 그 구문을 모르겠습니다. 찾아보세요!

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top