ABAPREADTABLE使用BINARYSEARCH如题,readtable使用binarysearch,withkey有多个字段的时候,寻找数据的内部逻辑是怎样的比如有内表(按A,B已排好序)TDATAABC1111222132242353
如题,read table使用binary search,with key有多个字段的时候,寻找数据的内部逻辑是怎样的
比如有内表(按A,B已排好序)
T_DATA
A B C
1 1 1
1 2 2
2 1 3
2 2 4
2 3 5
3 1 6
3 2 7
3 3 8
现在用如下语句查找
READ TABLE T_DATA INTO W_DATA WITH KEY A='2' B = '3' BINARY SEARCH.
可以找到C='5'的这条数据
现在的问题是,我想知道具体的内部逻辑是怎样的,我有两个猜想.
1.先找A='2',再找B='3'?两次都是二分法查找?但第一次二分法如何能找出多条数据?
2.直接将A和B合并,条件转换成AB='23',这样就算多个字段,也符合二分法查找方式,比较偏向这种.
有谁来证实下,或者知道正确的内部逻辑,非常感谢.
对于内表的二分查找,与对内表的排序一样,都是先对比指定的第一个字段,再对比指定的第二个字段...直到对比完指定的第n个字段.
所以,猜想1是正确的逻辑.借你的例子,它是先二分查找找出所有A='2'的数据,然后再从筛选得出的数据中去二分查找B='3'的数据,如果有多条满足条件的数据,则返回内表中满足条件的索引最小的一条.
在做二分查找之前,需要先对内表以查找的字段顺序进行升序排序,也就是说,在你的例子中用二分查找之前要对内表按A、B的顺序进行排序,即
SORT T_DATA[] BY A B ASCENDING.
否则不一定能查找到正确的确结果
设f(x)=e^x-2,试证:在区间(0,2)内至少存在一点ξ,使e^ξ-2=ξ 2020-03-31 …
如图,图中需求曲线(D)与供给曲线(S)相交于E点(市场均衡点),PE为均衡价格,QE为均衡数量。 2020-05-14 …
1.请你把one至nine九个数词填入下面图中的空格内,使等式成立,数字不可重复.□+□=□ □- 2020-05-16 …
在oracle数据库中,你有3个控制文件,某天发现丢失一个,为了恢复这个控制文件,下面步骤正确的是? 2020-05-24 …
在Excel中,()数据是使用最多,也是最为复杂的数据类型。该类型数据由数字0~9、正号、负号、小数 2020-05-31 …
无菌包被无菌等渗溶液浸湿后,应立即( )A.晾干使用B.烘干使用C.速将无菌包内物品用完D.4h内使 2020-06-07 …
如图所示硬纸板是由E、F两块粘接起来的,可以绕ON转动,ON垂直于镜面,让入射光线沿纸板射向镜面上 2020-07-07 …
同步发电机的励磁电压与内部电势有什么关系,我看有些书直接把两者划等号了,我觉得励磁电压越大,使励磁 2020-07-09 …
对静态查找表、动态查找表叙述正确的是A、静态查找表只查找B、静态查找表不改变数据元素集合内的数据元 2020-07-14 …
如图,桌面内,直线l上摆放着两块大小相同的直角三角板,它们中较大锐角的度数为60°.将△ECD沿直 2020-07-20 …