2011-01-30 68 views
3

是否有可能在sql/sqlite3執行選擇的列不存在,但是其他列的計算結果?選擇從其他現有列計算'虛擬'列

例如考慮到與列max和電流的表,我想對之探源進行選擇兩個,所以如果我有間:

table_data: 
max|current 
10|3 
12|8 

select ???? from table_data order by ????? asc; 

desired result: 
4 
7 

的sqlite3這裏語法http://www.sqlite.org/lang_expr.html,但無法理解它

+0

我會問如何追加這樣的虛擬列SELECT *。哇`SELECT *,'1'作爲「im」`的作品! – Val 2014-07-22 13:54:35

回答

3
select `max` - `current` as `result` from table_data order by `result` asc 
+0

謝謝。將概率使用OMG Ponies更清晰的語法,但這是我能夠嘗試與複製粘貼 – hanlonj 2011-01-30 05:26:17

1

如果這不僅僅是一次性的,你可能更適合觀看。

create view yourtable_diffs as 
select max, current, max - current as diff from yourtable; 

然後,你可以

select diff from yourtable_diffs order by diff; 

你可能需要看看SQL tutorial從FirstSQL J.

+0

這看起來不錯。所以yourtable_diffs會持續存在並自動計算值?好處是什麼,更乾淨的查詢?如果我想從yourtable_diffs和table_data的組合中選擇列,該怎麼辦? – hanlonj 2011-01-31 09:50:23