2016-03-19 18 views
0

Benim tablo buBen Sıralanmış şekilde benim tabloya id eklemek istediğiniz

gibi, ben a dan z ye sıralanmış bir şekilde adlarına göre id eklemek istediğiniz bu

release 
    b 
    c 
    a 
    e 
    f 
    q 

gibidir

release id 
    b   2 
    c   3 
    a   1 
    e   4 
    f   5 
    q   6 

Bu nasıl yapılır?

+0

, sadece 1'den 6'ya kadar id ekleyebilirsiniz, ancak bu sadece satır numaralarına göre, – user92322

+0

sürümüne göre kimlik eklemek istiyorum. o sürümdeki verileri değiştir. onları a'dan z'ye ayırın ve verileri tabloya kaydedin. – user92322

+0

satır numarasına göre id ekleyebileceğim ne db kullanıyorsunuz? – shibormot

cevap

2

Oracle Sorgu:

MERGE INTO table_name d 
USING (SELECT ROWID, 
       ROW_NUMBER() OVER (ORDER BY release) AS id 
     FROM table_name) s 
ON (d.ROWID = s.ROWID) 
WHEN MATCHED THEN UPDATE SET id = s.id; 

Oracle ve SQLite Sorgu:

UPDATE table_name 
SET id = (SELECT COUNT(*) 
      FROM table_name b 
      WHERE table_name.release >= b.release); 
şimdi

SQLFIDDLE

+0

Merhaba, cevabınız için teşekkürler. ancak select kullanarak tablodaki veriler değişmedi. Güncellemeyi ve siparişi kullanmaya çalışıyorum. Ama ben çalışmadım .. – user92322

+0

@ user92322 'UPDATE' kullanmak için güncellendi. – MT0

İlgili konular