TSL语言基础 > SQL基础到TS-SQL > TS-SQL语法 > SELECT查询语句 > Select子句 > 参数

SELECTOPT(Options)    

  • 指定SELECT的选项,控制SELECT的行为, Options 为以下数值的组合(以下数值的_XOR或者相加)
    选项名 含义
    SELECT_OPT_SINGLEV 1 返回为单个值,与VSelect同
    SELECT_OPT_SINGLEARRAY 2 返回为一维数组,与SSelect同
    SELECT_OPT_MATRIX 4 返回为Matrix类型,与MSelect同
    SELECT_OPT_PACKED 8 返回的行列下标为增长的数字
    SELECT_OPT_MULTIAGGSAMENAME 16 当采用SUMOF( * )这种模式的时候,每个字段的聚集的名保持和字段一致
    SELECT_OPT_AGGSAMENAME 32 当采用SUMOF([“abc”])的时候,返回的字段名依旧为”abc”
    SELECT_OPT_N_LEAD_COND 64 当聚集函数使用次数以及条件的时候,64表示移动领先于条件,默认是条件领先于移动。例如AVGOF([0],[0]>0.5,10),如果采用64则表明为最近10个内大于0.5的平均数,如果没有该选项,则为最近10个大于0.5的平均数 移动的聚集函数也可以使用可选参数来实现这个功能,例如AVGOF([0],[0]>0.5,10,True)就表示对最近10个内符合条件的求平均,该参数为假表示最近10个符合条件的。
    SELECT_OPT_DUP_FIELD_POS_TO_LAST 128 默认的时候当字段列表发生重复的时候,字段以及其计算的次序为第一个,当设置了128的时候,重复的字段以及其计算的次序为最后一个
    SELECT_OPT_REFOF_EMPTY_NIL 256 默认refof的时候,当引用越界时,返回的数据为整数0,设置该标志的时候返回的数据为NIL
    8192 使得返回字符串为Unicode
    SELECT_OPT_ORDERBY_REFOF 16384 当有ORDER BY的时候(且非group by),返回列表里的REFOF和移动聚集函数的行为将会以排序结果集为基准,而非原始序。 暂不支持向后推移。
    0x8000000 TS-SQL语法中,可指定Openforwardonly模式,即提取到结果集后,不再对该结果集进行缓存

    例子:
    功能:将表格行列下标更改为增长的自然数字下标数组:t:=Zeros(4,array('A','B','C','D'));
    执行:return select selectopt(8) * from t end;
    返回结果:

    例2:
    功能:对数组每列进行累加,累加后列名与原列名保持一致
    数组:t:=`array('A':0->5,'B':10->15,'C':20->25);
    执行:return selectselectopt(16) sumof( *,1,6)from t end;