2011-01-30 62 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