SQL数据库中有一表TDATA,有字段AA,BB,CC,DD,EE,FF,GG,LH,LHSUM表中的记录有近1000万条,字段AA,BB,CC,DD,EE,FF,GG里面存储的是整型数字,从0-10000的数字,现在要做的是:
每行记录从AA,BB,CC,DD,EE,FF,GG这几个字段里面判断这几个字段里面的数字是否是连续的,比如AA=100,BB=101的话,那么BB、AA是属于连续的数字,现在希望通过SQL语句来判断这几个字段中是否存在连续的数字,会出现几次连续的数字:例如1:
字段: AA BB CC DD EE FF GG
值: 101 102 103 104 105 106 107
那么,LH的值应该为7,表示最多有7个数字相连;LHSUM的值为1,表示出现了1段连续的数字。
例如2:
字段: AA BB CC DD EE FF GG
值: 101 102 103 211 212 213 214
那么,LH的值应该为4,表示最多有4个数字相连;LHSUM的值为2,表示出现了2段连续的数字。
例如3:
字段: AA BB CC DD EE FF GG
值: 101 102 104 105 212 213 215
那么,LH的值应该为2,表示最多有2个数字相连;LHSUM的值为3,表示出现了3段连续的数字。
备注:只要相邻的2个字段符合数字是递增1相连就表示为字段相连
如何通过SQL来实现?请高手指教!
每行记录从AA,BB,CC,DD,EE,FF,GG这几个字段里面判断这几个字段里面的数字是否是连续的,比如AA=100,BB=101的话,那么BB、AA是属于连续的数字,现在希望通过SQL语句来判断这几个字段中是否存在连续的数字,会出现几次连续的数字:例如1:
字段: AA BB CC DD EE FF GG
值: 101 102 103 104 105 106 107
那么,LH的值应该为7,表示最多有7个数字相连;LHSUM的值为1,表示出现了1段连续的数字。
例如2:
字段: AA BB CC DD EE FF GG
值: 101 102 103 211 212 213 214
那么,LH的值应该为4,表示最多有4个数字相连;LHSUM的值为2,表示出现了2段连续的数字。
例如3:
字段: AA BB CC DD EE FF GG
值: 101 102 104 105 212 213 215
那么,LH的值应该为2,表示最多有2个数字相连;LHSUM的值为3,表示出现了3段连续的数字。
备注:只要相邻的2个字段符合数字是递增1相连就表示为字段相连
如何通过SQL来实现?请高手指教!
但是由于你是大型数据库 数据量很大 所以此方法不能用在你的例子中!
update TDATA set LH=7,LHSUM=1 where BB=AA+1 and CC=AA+2 and DD=AA+3 and EE=AA+4 and FF=AA+5 and GG=AA+6update ....还好只有7个字段,组合不算多。我再想想有没有简单的方法。同时期待高手们出手。
联机帮助!
LHSUM=1:
AA BB CC DD EE FF GGLH=6:
LHSUM=1:
AA BB CC DD EE FF
BB CC DD EE FF GGLH=5:
LHSUM=1或2:
AA BB CC DD EE
BB CC DD EE FF
CC DD EE FF GGLH=4:
LHSUM=1或2
AA BB CC DD
BB CC DD EE
CC DD EE FF
DD EE FF GGLH=3:
LHSUM=1或2或3
AA BB CC
BB CC DD
CC DD EE
DD EE FF
EE FF GGLH=2:
LHSUM=1或2或3
AA BB
BB CC
CC DD
DD EE
EE FF
FF GG
第一步,先更新LH字段的值;
第二步,再根据LH字段以及AA、BB、CC、DD、EE、FF、GG字段的值算出LHSUM的值?