2011-09-01 60 views
1

我有列添加的協商所有列在SQL

[a1,a2,a3,a4,a5....an] 

所有值均爲數字的表。我想請教一個是回報:

[a1,a2,a3,a4,a5....an, S] 

其中S = A1 + A2 + A3 + ... +的

是可以做到的,如果沒有指定在S計算的列名? (如果某個列被添加或刪除,請不要更改該部分)

無論如何,我可以使用哪種最佳解決方案?

在此先感謝

回答

1
SELECT a1, a2, a3, ... , an, (a1 + a2 + ... + an) AS S FROM yourColumn. 
2

沒有辦法省略命名所有列。此外,您正在處理如何使用關係數據庫的問題。

相反創建具有metacolumns,例如一個表:

CREATE TABLE `tableA` (
`id`   int UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, 
`col_index` int UNSIGNED NOT NULL, 
`value`  int NOT NULL, 
    ... 
); 

要檢索的a5等效:

SELECT value 
FROM `tableA` 
WHERE col_index = 5 AND (whatever selects the proper rows)