2016-09-24 63 views
0

對案件進行排序現在,當我運行我的查詢時,它不會將最終的Score列從最高到最低排序。我似乎無法弄清楚我怎麼能把它放在我的案子中。我至少需要第一個和第二個案例來對最後一列進行排序。根據行結果desc

SELECT 
    list.WorkOrder, 
    list.Address, 
    locateparsed.CrossStreet, 
    list.Section, 
    list.Subdivision, 
    locateparsed.KeyMap, 
    locateparsed.City, 
    list.Score 
FROM list 
LEFT JOIN locateparsed ON locateparsed.WorkOrder = list.WorkOrder 
    WHERE locateparsed.City = 'PEARLAND' 
    AND list.Completed = 0 
    AND list.Reference = 0 
    AND locateparsed.Ticket IS NOT NULL 
GROUP BY list.WorkOrder 
ORDER BY CASE 
    WHEN list.Address LIKE '%VINTAGE PARK LN' THEN 1 
    WHEN locateparsed.Address LIKE '%SHADOW RIDGE LN' THEN 2 
    WHEN list.Section = 'Sec. 1' AND list.Subdivision = 'Shadow Ridge' THEN 3 
    WHEN list.Subdivision = 'Shadow Ridge' THEN 4 
    WHEN locateparsed.KeyMap = '612P' THEN 5 
    WHEN locateparsed.KeyMap = '612' THEN 6 
    ELSE 7 
END 

輸出示例,我需要:

WO | Address | CrossStreet | Section | Subdivision | KeyMap | City | Score 
1 | 123 test | other | Sec. 1 | Shadow Ridge | 612P | Pearland | 10 
2 | 111 test | other | Sec. 1 | Shadow Ridge | 612P | Pearland | 9 
3 | 333 other | bleach | Sec. 2 | Shadow Ridge | 612P | Pearland | 15 
4 | 334 other | bleach | Sec. 2 | Shadow Ridge | 612P | Pearland | 14 
5 | 848 other | bleach | Sec. 2 | Shadow Ridge | 612P | Pearland | 13 
6 | 733 blah | random | Sec. 5 | Bright Ridge | 612P | Pearland | 24 
7 | 722 hmm | blah | Sec. 5 | Bright Ridge | 612P | Pearland | 5 
8 | 723 hmm | blah | Sec. 5 | Bright Ridge | 612P | Pearland | 4 
9 | 111 asdf | fdas | Sec. 30 | Other Ridge | 650P | Pearland | 48 
10 | 123 asdf | fdas | Sec. 30 | Other Ridge | 650P | Pearland | 43 

回答

0

我想你只需要包含score作爲第二排序關鍵字:

ORDER BY (CASE WHEN list.Address LIKE '%VINTAGE PARK LN' THEN 1 
       WHEN locateparsed.Address LIKE '%SHADOW RIDGE LN' THEN 2 
       WHEN list.Section = 'Sec. 1' AND list.Subdivision = 'Shadow Ridge' THEN 3 
       WHEN list.Subdivision = 'Shadow Ridge' THEN 4 
       WHEN locateparsed.KeyMap = '612P' THEN 5 
       ELSE 7 
      END), 
     score DESC 

這由score排序所有羣體作爲第二鍵。如果你只需要前兩組,那麼你需要包括第二個CASE排序score

+0

是的,這工作完美! –