2016-03-19 2 views
0

Mein Tisch ist wie diesIch möchte in einer sortierten Weise id meine Tabelle hinzuzufügen

release 
    b 
    c 
    a 
    e 
    f 
    q 

I id nach ihrem Namen in einer sortierten Weise von a bis z, wie diese

hinzufügen mag
release id 
    b   2 
    c   3 
    a   1 
    e   4 
    f   5 
    q   6 

Wie geht das?

+0

jetzt, kann ich nur id von 1 bis 6 hinzufügen, aber das ist nur nach ihrer Zeilennummer, ich möchte ID nach ihrer Veröffentlichung hinzufügen – user92322

+0

eine andere Lösung ist t o Daten in Release ändern. sortiere sie von a bis z und speichere Daten in der Tabelle. so dass ich ID entsprechend der Reihe Nr. – user92322

+0

hinzufügen kann, welche DB benutzen Sie? – shibormot

Antwort

2

Oracle Abfrage:

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 und SQLite Abfrage:

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

SQLFIDDLE

+0

Hallo, danke für die Antwort. aber die Verwendung von select verändert die Daten in der Tabelle nicht. Ich versuche Update zu verwenden und zu bestellen. Aber ich habe nicht gearbeitet .. – user92322

+0

@ user92322 Aktualisiert, um 'UPDATE' zu verwenden. – MT0

Verwandte Themen