2016-04-06 29 views
0

Sıfırlamak istediğim bir dizi sonuç var:sql sorgusu nasıl sıralanır

Neyi bölümleyeceğimi bilmiyorum.

Sorgu:

SELECT DISTINCT 
    TFormSectionID AS FormSectionID, 
    TFSSortOrder AS SectionSortOrder, 
    TSectionItemID AS SectionItemID, TrendType 
FROM    
    Report.TrendData 
WHERE   
    (ProgramID = 1) 
    AND (TrendType > 0) 
    AND tformid = 34 
    AND TFormSectionID = 12 

Sonuçlar:

FormSectionID SectionSortOrder SectionItemID TrendType 
    12     7     90   1 
    12     7     91   1 
    12     7     154   1 
    12     7     528   1 
    12     9     154   1 
    12     9     528   1 

Ben bölüm sıralama düzeninde 9 ile sonuçları 2 arasına girmek ve bölüm sıralama düzenini 7 1

+0

bölüm bölümleyici tarafından bölümlendirme –

+1

İstediğiniz sonuçların neden istenmesi mantığı nedir? –

cevap

1
arasına girmek istiyoruz

DENSE_RANK:

SELECT DISTINCT TFormSectionID AS FormSectionID, 
     TFSSortOrder AS SectionSortOrder, 
     TSectionItemID AS SectionItemID, 
     TrendType, 
     DENSE_RANK() OVER (ORDER BY SectionSortOrder) AS rn  
FROM Report.TrendData 
WHERE (ProgramID = 1) AND (TrendType > 0) AND 
     tformid = 34 and TFormSectionID = 12 
'i kullanarak istediğinizi alabilirsiniz gibi görünüyor.
+1

Bir bitin ayrıntılandırılması: pencere işlevi * bir bölümleme maddesi gerektirmez. Bir olmadan, tüm sonuç kümesini bölüm olarak kullanır. –