2014-03-05 2 views
0

어떻게 작동합니까 모든 조건을 확인할 수 있고 모든 실제 조건을 기반으로 정렬을 확인할 수 있으며 첫 번째 일치시 존재하지 않습니다 ???여러 사례 조건이 row_number에서 잘 유지되면 어떻게됩니까?

ROW_NUMBER() OVER (ORDER BY 

          CASE WHEN @SortColumn = N'DataUsage' AND @SortAsc = 0 THEN t.DataUsage END DESC, 
          CASE WHEN @SortColumn = N'OSVersion' AND @SortAsc = 1 THEN t.OSMajorVersion END DESC , 
          case WHEN @SortColumn = N'OSVersion' AND @SortAsc = 1 THEN t.OSMinorVersion END DESC, 
          case WHEN @SortColumn = N'OSVersion' AND @SortAsc = 1 THEN t.OSBuildNumber END DESC 
         ) myRow 

질문은 당신은 네 가지 case 문을 N'OSVersion '

답변

0

에 있습니다. 그래서 각각은 처형 당합니다.

정말로 원하는 것을 말하기는 어렵지만, 아마도 이것을 1로 결합하고 싶습니까?

 (CASE WHEN @SortColumn = N'DataUsage' AND @SortAsc = 0 THEN t.DataUsage 
       WHEN @SortColumn = N'OSVersion' AND @SortAsc = 1 THEN t.OSMajorVersion 
       WHEN @SortColumn = N'OSVersion' AND @SortAsc = 1 THEN t.OSMinorVersion 
       WHEN @SortColumn = N'OSVersion' AND @SortAsc = 1 THEN t.OSBuildNumber 
     END) DESC 
+0

무엇이 필요합니까는 osversion을 기준으로 정렬하는 것입니다. 그래서 내 @ sortcolumn이 'osversion'일 때 3 가지 조건 모두 만족 될 것입니다. 내 질문은 rownumber가 ROW_NUMBER() 오버 (OSMajorVersion DESC, OSMinorVersion DESC, OSBuildNumber DESC로 주문) – Mickey

관련 문제