我想创建一个脚本,该脚本获取一个表的行,这些行在其ASCII总和中具有特定的数学差异,并将行添加到单独的表中,或者甚至在它们具有该差异时标记不同的字段。
例如,我希望找到字A的ASCII和和字B的ASCII总和(两者都存储在表的行中)的差异为63或31。
我可能会使用循环来选择这些行,但SQL并不是我最大的优点。
ItemID | asciiSum |ProperDiff
-------|----------|----------
1 | 100 |
2 | 37 |
3 | 69 |
4 | 23 |
5 | 6 |
6 | 38 |
运行代码后,字段ProperDiff将更新为包含项目ID 1,2,3,5,6的“是”,因为AsciiSum为1和2(100-37)= 63等。
答案 0 :(得分:0)
这不会很快,但我认为它符合您的要求:
update t
set ProperDiff = 'yes'
where exists (select 1
from t t2
where abs(t2.AsciiSum - t.AsciiSum) in (63, 31)
);
它应该可以在小桌子上使用。