如何找出两列数据的差异?

18

我有一个临时表格,其中有两列整数数据,我想在第三列中找到两列之间的差异。

#TEMP1

Present   previous
59           88
75           75
45           45
77           88
09           08

#temp2

Difference
 29
 0
 0
 11 
 -1

这是否可能??

4个回答

32
select previous, Present, previous-Present as Difference from tablename
或者
select previous, Present, previous-Present as Difference from #TEMP1

8
如果表的别名为 t
SELECT t.Present , t.previous, t.previous- t.Present AS Difference
FROM   temp1 as t

6

是的,您可以选择数据,计算差异,并将所有值插入另一个表中。

insert into #temp2 (Difference)
select previous - Present
from #TEMP1

3

有许多方法可以做到这一点(我鼓励您查阅,因为它们通常更有效),但最简单的方法是使用非设置操作来定义第三列的值:

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接