我有一个临时表与两列整数数据我想找到第三列中的两列之间的差异。如何查找两列数据之间的差异?
#TEMP1
Present previous
59 88
75 75
45 45
77 88
09 08
#temp2
Difference
29
0
0
11
-1
这是可能吗?
我有一个临时表与两列整数数据我想找到第三列中的两列之间的差异。如何查找两列数据之间的差异?
#TEMP1
Present previous
59 88
75 75
45 45
77 88
09 08
#temp2
Difference
29
0
0
11
-1
这是可能吗?
select previous, Present, previous-Present as Difference from tablename
或
如果表是别名t
SELECT t.Present , t.previous, t.previous- t.Present AS Difference
FROM temp1 as t
是的,你可以选择数据,计算出的差异,以及在其他表中插入的所有值:
insert into #temp2 (Difference)
select previous - Present
from #TEMP1
有很多方法可以做到这一点(我鼓励您查看它们,因为它们通常会更高效),但最简单的方法是使用非设置操作来定义第三列的值:
SELECT
t1.previous
,t1.present
,(t1.present - t1.previous) as difference
FROM #TEMP1 t1
请注意,这种选择风格被认为是不好的做法,因为它要求查询计划重新选择前两列的值,从逻辑上确定第三个值(违反了SQL基于的集合论)。虽然它比较复杂,但如果你打算使用这个来评估你的例子中列出的值,我会用APPLY子句进行调查。 http://technet.microsoft.com/en-us/library/ms175156(v=sql.105).aspx