2016-04-27 20 views
0

Meine Tabelle eine laufende Zählung eines Spaltennamen eine Spalte wie enter image description herefindet in sybase

Nein, ich brauche eine laufende Zählung des Spaltenwertes in anderen Spalt wie enter image description here

Ich bin zu berechnen hat nicht fähig, es zu bekommen, versuchte count (column_name), aber es gibt mir die Länge einer Spalte. Irgendeine Idee, wie man es in Sybase (ASE) macht ??

+0

Können Sie uns die Abfrage zeigen, die die Ausgabe für Ihre Tabelle 'Device_name' generiert hat? –

+0

Es ist einfach wie, Select Column1, Spalte2, device_name, Column4 VON DBO.TABLE_NAME –

+0

Sie wollen nur eine Zeilennummer neben dem device_name? oder willst du zählen? – scaisEdge

Antwort

0

Tim Biegeleisen wies auf das Problem hin - eine Sortierreihenfolge für die Geräte zu bestimmen.

Wenn Sie nicht über die Reihenfolge der zurückgegebenen Zeilen kümmern, könnten Sie verwenden:

SELECT  a.Device_name, 
      (SELECT count(*) FROM Devices 
      WHERE Device_name <= a.Device_name) AS "Running Count" 
FROM  Devices a 
ORDER BY Device_name 

Dies gibt.

Device_name   Running Count 
-------------------- ------------- 
Android       1 
Apple       2 
Blackberry      3 
Unix        4 
Windows       5 

Wenn Sie eine Spalte (zB haben "ID"), die die Reihenfolge der Geräte bestimmt, dann könnten Sie folgenden Code verwenden:

SELECT  a.Device_name, 
      (SELECT count(*) FROM Devices 
      WHERE ID <= a.ID) AS "Running Count" 
FROM  Devices a 
ORDER BY Device_name 

uns die laufende Zählung in der Angabe ursprüngliche Reihenfolge:

Device_name   Running Count 
-------------------- ------------- 
Apple       1 
Blackberry      2 
Windows       3 
Android       4 
Unix        5 

Natürlich ist die Reihenfolge, in der die Ergebnisse erhalten, ist nicht garantiert, wenn Sie „im Auftrag“ zu verwenden.