构造一个select option
2008 10 9 10:55 AM 2902次查看
这个用来代替的东西就是ranges,示例如下:
ranges : r_singlerole for agr_agrs-child_agr.
*取child_agr的值,放入i_range内表。代码略。
*用i_range中所有的child_agr构造r_singlerole。
loop at i_range.
r_singlerole-option = 'EQ'.
r_singlerole-sign = 'I'.
r_singlerole-low = i_range-child_agr.
append r_singlerole.
endloop.
*使用这个range
select agr_name child_agr
into table i_agr_agrs
from agr_agrs
where agr_name = roles
and child_agr in r_singlerole.
顺便解释下,r_singlerole有几个字段:option为'EQ'是表相等,其他还有不等于、大于之类的,你debug一个select option,看看它的内容就知道了。
sign可以为'I'或'E',分别表包含和不包含。
low是最低值,high是最高值。
当然,如果你取的i_range中数据太多,都用'EQ'的话就会导致r_singlerole非常庞大,性能就会有影响,因此只适用于数据较少的时候。
如果数据正好是有序的,你可以不用'EQ',而改为范围,从而压缩r_singlerole。
0条评论 你不来一发么↓