2016-04-27 33 views
0

我的表有像 enter image description here查找列名的運行計數在Sybase

不,我需要計算的列值的運行計數在其他列像 enter image description here

我不是列能夠得到它,嘗試count(column_name),但它給了我一個列的長度。任何想法如何在Sybase(ASE)中做到這一點?

+0

你能告訴我們爲你的'Device_name'表生成輸出的查詢嗎? –

+0

它簡單的像, 選擇 列1, 列2, 設備名稱, Column4 FROM DBO.TABLE_NAME –

+0

你只想要DEVICE_NAME旁的行號?或者你想要點數? – scaisEdge

回答

0

Tim Biegeleisen暗示了這個問題 - 確定設備的排序順序。

如果你不關心返回行的順序,你可以使用:

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

這給:

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

如果你有一列(例如,「ID」 )決定設備的順序,那麼你可以使用這樣的代碼:

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

給我們的運行計數在原始訂單:

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

當然,除非您使用「order by」,否則無法保證獲得結果的順序。