2013-03-26 5 views
2

상태 값이 특정 값인 모든 항목이 먼저 와서 날짜순으로 정렬되도록 결과를 정렬해야합니다. TSQL 특정 값으로 주문

나는이 시도 :
SELECT Id, Status, CreatedAt FROM Table 
ORDER BY (Status=1) DESC, CreatedAt 

이 난에 부울 값을 얻을 거라고 생각 (상태 = 1) 그래서 상단에 참 (1) 값을 넣어 DESC로 주문.

하지만 구문 오류가 발생합니다. 이것이 가능한가? 그렇다면 올바른 구문은 무엇인가?

감사합니다.

답변

10

당신은 또한 CASE을 사용할 수 있습니다 시도해보십시오 ORDER BY :

+0

감사합니다 아주 많이, 나는 그것이 CASE BY 연 ORDER 될 줄 알았는데하지만 그것을 전에 사용한 적이 다른

SELECT Id, Status, CreatedAt FROM Table ORDER BY CASE WHEN Status = 1 THEN 0 ELSE 1 END ASC, CreatedAt ASC 
내가 읽은 것들은 정확히 들어 맞는 것 같지 않았습니다. 굉장해! – Shane

3

SELECT Id, Status, CreatedAt FROM Table 
ORDER BY (case when Status=1 then 1 else 2 end), CreatedAt