2017-07-18 60 views
0

我想創建一個腳本,它接受一個表格的行,它們的ASCII總和具有特定的數學差異,並將這些行添加到一個單獨的表中,或者甚至在具有該差異時標記不同的字段。如何比較表中的所有行與表的行?

舉例來說,我希望找到的字時,A的ASCII之和字B的ASCII總和,無論是存儲在表中的行,有63的差異或31

我大概可以使用循環來選擇這些行,但SQL並不是我最大的優點。

ItemID | asciiSum |ProperDiff 
-------|----------|---------- 
1  | 100  | 
2  | 37  | 
3  | 69  | 
4  | 23  | 
5  | 6  | 
6  | 38  | 

運行代碼後,場ProperDiff將被更新以包含 '是' 爲1,2,3,5,6的ItemID,因爲對於1和2(100-37)的AsciiSum = 63等。

+6

發佈樣本數據和預期結果.. –

+0

你說項目1,2,3,5和6應該是'是',但差異應該是32,而不是31,正確嗎? – martennis

回答

0

這會不會是快,但我認爲這是你想要什麼:

update t 
    set ProperDiff = 'yes' 
    where exists (select 1 
        from t t2 
        where abs(t2.AsciiSum - t.AsciiSum) in (63, 31) 
       ); 

它應該沒關係的小桌子。

相關問題