天软金融分析.NET函数大全 > TSL函数 > 基础函数 > 数组 > 增删改查

FilterNotIn    

简述

返回指定列的值不在过滤集内的子结果集或者下标列表。
定义
FilterNotIn(R;V;Field;[bReturnSubResult=true]):Array
参数
名称类型说明
RArray,TableArray需要过滤的结果集。
VArray,TableArray过滤集。
FieldString过滤的结果集的字段,如果Field为nil则表示整行过滤。如果Field为一个数组,则表示需要过滤的字段组。
如果过滤的数组是二维数组,Field为nil时,则过滤的当前行类似于集合运算,与集合运算的差异为过滤运算并不消除重复行。
bReturnSubResultBoolean过滤后是否返回子集。默认为真,为真时返回整个结果集符合条件的子集,为假时返回结果集符合条件的下标列表。
返回Array,TableArray数组
  • 范例
    用法同FilterIn
    a:=array();
    for i:=0 to 5 do
    begin
    a[i]["a"]:=i;
    a[i]["b"]:=i div 2;
    a[i]["c"]:=i*2;
    end;
    b:=array(1,3,5);
    c1:=FilterNotIn(a,b,"a"); //过滤结果
    c2:=FilterNotIn(a,b,"a",false); //过滤仅返回下标
    return array(c1,c2);

    //c1结果:

    //c2结果:


    二维数组中,过滤行运算示例:
    t:=array(
    ("a":0,"b":0,"c":0),
    ("a":1,"b":0,"c":2),
    ("a":2,"b":1,"c":4),
    ("a":2,"b":1,"c":4),
    ("a":4,"b":2,"c":8),
    ("a":4,"b":2,"c":8),
    ("a":6,"b":3,"c":12));
    return filternotin(t,array(("a":2,"b":1,"c":4)),nil);

    返回结果:过滤后保留重复行。


    一维数组的过滤:
    return FilterNotIn(array(1,-5,10,2,10,14,-5),array(2,3,10),nil);

    返回结果:array(1,-5,14,-5)
相关