内容发布更新时间 : 2024/11/15 3:01:59星期一 下面是文章的全部内容请认真阅读。
61. roleValue ( string [ , member | set_exp ] )
返回与指定上下文中的某一角色(其名称“string”指定)相关的属性值。 只有当存在多个限定情况,并且可由其它上下文得出时,第二个自变量才可选用。
通过按角色(而非按查询项目 ID)访问属性,可以灵活地在不同的数据源和模型之间应用。 (对于按维度建模的关系数据源,应由建模者分配角色。) 为所有数据源类型的成员定义的固有角色包括: _businessKey、_memberCaption、_memberDescription、_memberUniqueName。
62. rootMembers ( hierarchy )
返回层级的根成员。
63. subset ( set_exp, index_exp1 [ , index_exp2 ] )
返回指定集中成员的子集,从“index_exp1”开始。 如果指定了计数“index_exp2”,则返回多个成员(如果存在)。 否则,将返回所有剩余成员。
64. unique ( set_expr )
从指定集中删除所有重复项。 剩余的成员保持原来的顺序。
65. value ( tuple )
返回由数组指定的单元格的值。 注意,度量维度的默认成员是默认度量。
66. _round ( numeric_exp, integer_exp )
返回精确到小数点右侧 integer_exp 位的数字表达式。 注:integer_exp 必须为非负整数。 示例: _round ( 1220.42369, 2 ) 结果: 1220.42
67. set ( member { , member } )
返回表达式中定义的成员列表。 成员必须属于同一层级。
68. siblings ( member )
返回指定成员的父项的子项。
69. sqrt ( numeric_exp )
返回 numeric_exp 的平方根。 numeric_exp 必须是非负数。 例如:sqrt ( 9 ) 结果:3
70. substring ( string_exp , integer_exp1 [ , integer_exp2 ] )
返回 string_exp 的子字符串。该子字符串从 integer_exp1 位置开始连续 integer_exp2 个字符或者到 string_exp 的末尾(如果未指定 integer_exp2)。 string_exp 中的第一个字符处在位置 1。
例如:substring ( 'abdefg', 3, 2) 结果:'de'
71. tail ( set_exp [ , index_exp ] )
返回“set exp”中最后的“index_exp”个要素。 “index_exp”的默认值为 1。
72. topCount ( set_exp , index_exp , numeric_exp )
此函数根据在“set_exp”的每个成员中算得的“numeric_exp”值对集进行排序,然后返回具有最大“index_exp”值的成员。
73. topPercent ( set_exp , numeric_exp1, numeric_exp2 )
此函数与 topSum 类似,但阈值是“numeric_exp1”占合计的百分数。
74. topSum ( set_exp , numeric_exp1 , numeric_exp2 )
此函数根据在“set_exp”的相应成员中算得的“numeric_exp2”值进行排序,然后挑选出累
加合计值至少为“numeric_exp1”的最大项。
75. trim ( [ [ TRAILING | LEADING | BOTH ] [ match_character_exp ] , ]
string_exp )
返回截去开头和/或尾随空格的 string_exp,或者返回截去 match_character_exp 指定的某些字符的 string_exp。 如果未指定第一个自变量,则默认为 BOTH,如果未指定第二个自变量,则默认为空白。
例如:trim ( TRAILING 'A' , 'ABCDEFA' ) 结果:'ABCDEF'
例如:trim ( BOTH ' ABCDEF ' ) 结果:'ABCDEF'
76. tuple ( member { , member } )
根据指定成员(它们必须来自不同的维度)确定单元格位置(交集)。 默认情况下,包括来自所有维度(而非自变量中指定维度)的当前成员。 如果在计算上下文时未指定维度的当前成员,假定为该维度的默认成员。 此单元格的值可通过“value”函数求得。
77. union ( set_exp1 , set_exp2 [ , ALL ] )
此函数返回“set_exp1”和“set_exp2”这两个集的并集。 只有当可选关键字“ALL”用作第三个自变量时,结果中才会保留重复项。
78. upper ( string_exp )
返回已将所有小写字符转化为大写字符的 string_exp。 例如:upper ( 'abcdef' ) 结果:'ABCDEF'
宏函数
此列表包含可在宏内使用的函数。 一个宏可能包含一个或多个宏函数。 通过在宏的起始处和结尾处添加井字号 (#),可以将宏分隔开来。 井字号之间的任何内容都将被视为宏表达式,并在运行宏时执行。
1. value1 + value2
连接两个字符串。
示例:# '{' + $runLocale + '}'# 结果:{en-us}
2. CAMIDList ( [ 分隔符字符串 ] )
以值列表(使用逗号分隔)的形式返回用户身份的各个部分(帐户名、组名和角色名)。 示例: #CAMIDList ( )# 结果: CAMID(\任何人\创建者\查询用户\消费组件\CAMID(\度量标准创建者\
3. CAMIDListForType(身份类型)
根据身份类型(帐户、组或角色)返回用户身份阵列。 它可以与宏函数 csv 或 join 一起使用。
示例:[qs].[userRole] IN ( #csv ( CAMIDListForType ( 'role' ) ) # ) 结果:[qs].[userRole] IN ( 'Administrator', 'developer' )
4. CAMPassport ( )
返回护照。
示例: #CAMPassport ( )#
结果: 111:98812d62-4fd4-037b-4354-26414cf7ebef:3677162321
5. CSVIdentityName ( %parameter_map_name [ , separator_string ] )
使用当前已验证用户的身份信息在指定的参数映射中查找数据值。 用户身份的每一部分(账户名、组名、角色名)均在映射中用作键。 从映射中检索出的唯一值列表随后作为字符串返回,其中每一个值两侧均添加单引号,多个值则用逗号隔开。 示例:#CSVIdentityName ( %security_clearance_level_map )# 结果:'level_500' , 'level_501' , 'level_700'
6. CSVIdentityName ( %parameter_map_name [ , separator_string ] )
使用当前已验证用户的身份信息在指定的参数映射中查找数据值。 用户身份的每一部分(账
户名、组名、角色名)均在映射中用作键。 从映射中检索出的唯一值列表随后作为字符串返回,其中每一个值两侧均添加单引号,多个值则用逗号隔开。 示例:#CSVIdentityName ( %security_clearance_level_map )# 结果:'level_500' , 'level_501' , 'level_700'
7. array ( string_exp | array_exp { , string_exp | array_exp } )
从参数列表中构建阵列。 示例:
#csv ( 'x1' , 'x2' , array ( 'a1' , 'a2' ) )# 结果:
'x1' , 'x2' , 'a1' , 'a2'
8. csv ( array_exp [ , separator_string [ , quote_string ] ] )
从阵列要素中构建由逗号分隔的值字符串。 (可选)可以指定分隔符和引号字符串。 默认分隔符为逗号 (,),默认引号字符为单引号 (')。 示例:
#csv ( array ( 'a1' , 'a2' ) )# 结果: 'a1' , 'a2'
9. dq ( string_exp )
在所传递的字符串两侧添加双引号。 示例: #dq ( 'zero' )# 结果:\
10. grep ( pattern_string , array_exp )
搜索与第一个自变量中指定的样式匹配的阵列要素。 它将返回符合样式的阵列要素。 示例:
#csv ( grep ( 's' , array ( 'as', 'an', 'arts' ) ) )# 结果: 'as', 'arts'