2017-07-18 105 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) 
       ); 

它应该没关系的小桌子。

相关问题