我有一個臨時表與兩列整數數據我想找到第三列中的兩列之間的差異。如何查找兩列數據之間的差異?
#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