2013-11-27 28 views
23

Basit bir seçim ifadem var. Sonuç kümemde satırları numaralandıracak geçici bir sütun eklemek istiyorum. Bunu denedim - tüm satırları 1'e atar. @count = @count + 1 denedim ve işe yaramadı. Bu şeyi nasıl basit bir şekilde yaparım?SQL sorgusu sonuç kümesine bir satır numarası ekleyin

Teşekkürler.

+0

Satır numarasının nasıl artırılmasını istersiniz? Keyfi? Sorgunuzun bir SİPARİŞ BY'i yok, bu nedenle siparişin ne olmasını beklediğinizi tanımlamanız gerekiyor. –

+0

@AaronBertrand - Sadece numaralandırılmaları için satırlarıma ihtiyacım var. Sipariş gerçekten gerekli değil. Senin sorunun cevabı bu mu ? –

+0

Bu nedenle, rastgele uygulanan siparişte sorun yok ve sonuçlar her seferinde tutarsız bir sırayla sorgunuza tükeniyor mu? –

cevap

34

aşağıdaki gibi tipik bir desen olurdu, ancak (satır, bir sırasız torba bir tablo olduğu için tanım gereği) aslında sipariş uygulanmalıdır nasıl tanımlamak gerekir:

SELECT t.A, t.B, t.C, number = ROW_NUMBER() OVER (ORDER BY t.A) 
    FROM dbo.tableZ AS t 
    ORDER BY t.A; 

emin ne Sorunuzdaki değişkenlerin temsil edilmesi gerekiyor (eşleşmiyorlar).

39
SELECT 
    t.A, 
    t.B, 
    t.C, 
    ROW_NUMBER() OVER (ORDER BY (SELECT 1)) AS number 
FROM tableZ AS t 

Tabii at SQLFiddle

ömeği çalışma Bak, satır numaralandırma düzeni tanımlamak isteyebilirsiniz - eğer öyleyse, sadece normal ORDER BY maddede olduğu gibi, örneğin için OVER (ORDER BY t.C)OVER (ORDER BY (SELECT 1)) takas.