编辑表达式 expression

编辑表达式需要手动输入条件以形成规则。 利用此模式,可使用高级函数,这些函数允许您处理用于执行特定查询(如处理日期、字符串、数字字段、排序等)的值。

IMPORTANT
以下部分提供了有关如何使用表达式编辑器构建规则的信息。 请记住,用于构建规则的语法与用于添加个性化的语法不同。

使用表达式编辑器 edit

表达式编辑器可从查询建模器​ 编辑表达式 ​按钮获得,在配置自定义条件时,该按钮可用于​ 属性 ​和​ ​字段。

从​ 属性 ​字段访问
从​ ​字段访问
{modal="regular"}
{modal="regular"}

表达式编辑器提供:

  • 定义了表达式的​ 输入字段(1)
  • 可用的​ 字段(2) ​的列表,这些字段可在表达式中使用并对应于查询的定向维度。
  • 辅助函数(3),按类别排序。

通过直接在输入字段中输入表达式来编辑表达式。 要添加字段或辅助函数,请将光标置于要添加该字段或辅助函数的表达式中,然后单击+按钮。

表达式就绪后,单击​ 确认 ​按钮。 表达式将显示在所选字段中。 要对其进行编辑,请打开表达式编辑器并进行所需的更改。

以下示例显示为​ ​字段配置的表达式。 要编辑它,您需要使用​ 编辑表达式 ​按钮打开表达式编辑器。

辅助功能

利用查询编辑工具,可使用高级功能根据所需结果和操作数据的类型执行复杂筛选。 可以使用以下函数:

聚合

聚合函数用于对一组值执行计算。

名称
说明
语法
平均
返回数字类型列
的平均值
Avg(<值>)
计数
计算列
的非空值
Count(<值>)
CountAll
计算返回的值(所有字段)
CountAll()
Countdistinct
计算列
的不同非空值
Countdistinct(<值>)
最大
返回数字、字符串或日期类型列
的最大值
Max(<值>)
分钟
返回数字、字符串或日期类型列
的最小值
Min(<值>)
StdDev
返回数字、字符串或日期列
的标准偏差
StdDev(<值>)
StringAgg
返回字符串类型列的值的串联,由第二个参数
中的字符分隔
StringAgg(<值>, <字符串>)
总和
返回数字、字符串或日期类型列
的值的总和
Sum(<值>)

日期

日期函数用于操作日期或时间值。

名称
说明
语法
AddDays
向日期添加天数
AddDays(<日期>, <数字>)
AddHours
向日期添加小时数
AddHours(<日期>, <数字>)
AddMinutes
向日期添加分钟数
AddMinutes(<日期>, <数字>)
AddMonths
向日期添加月数
AddMonths(<日期>, <数字>)
AddSeconds
向日期添加秒数
AddSeconds(<日期>, <数字>)
AddYears
向日期添加年数
AddYears(<日期>, <数字>)
ConvertNTZ
应用定义的会话TZ
,将时间戳NTZ(不带时区的时间戳)转换为TZ(带有时区的时间戳)
ConvertNTZ (<日期+时间>)
DateCmp
比较两个日期
DateCmp(<日期>,<日期>)
DateOnly
仅返回日期(时间为00:00)*
DateOnly(<日期>)
Day
返回表示日期天数的数字
Day(<日期>)
DayOfYear
返回日期
年中的天数
DayOfYear(<日期>)
DaysAgo
返回与当前日期对应的日期减去n天
DaysAgo(<数字>)
DaysAgoInt
返回对应于当前日期减去n天
的日期(整数yyyymmdd)
DaysAgoInt(<数字>)
DaysDiff
两个日期之间的天数差
DaysDiff(<结束日期>, <开始日期>)
DaysOld
返回日期的年龄(以天为单位)
DaysOld(<日期>)
GetDate
返回服务器的当前系统日期
GetDate()
Hour
返回日期的小时数
Hour(<日期>)
HoursDiff
返回两个日期之间的小时数之差
HoursDiff(<结束日期>, <开始日期>)
Minute
返回日期的分钟数
Minute(<日期>)
MinutesDiff
返回两个日期之间的分钟数之差
MinutesDiff(<结束日期>, <开始日期>)
Month
返回表示日期月份的数字
Month(<日期>)
MonthsAgo
返回对应于当前日期 n 个月的日期
MonthsAgo(<数字>)
MonthsDiff
返回两个日期之间的月数之差
MonthsDiff(<结束日期>, <开始日期>)
MonthsOld
返回日期的年龄(以月为单位)
MonthsOld(<日期>)
Oldest
返回范围
中最早的日期
最旧(<日期,日期>)
Second
返回日期的秒数
Second(<日期>)
SecondsDiff
返回两个日期之间的秒数之差
SecondsDiff(<结束日期>, <开始日期>)
SubDays
从日期减去天数
SubDays(<日期>, <数字>)
SubHours
从日期减去小时数
SubHours(<日期>, <数字>)
SubMinutes
从日期减去分钟数
SubMinutes(<日期>, <数字>)
SubMonths
从日期减去月数
SubMonths(<日期>, <数字>)
SubSeconds
从日期减去秒数
SubSeconds(<日期>, <数字>)
SubYears
从日期减去年数
SubYears(<日期>, <数字>)
ToDate
将日期+时间转换为日期
ToDate(<日期 + 时间>)
ToDateTime
将字符串转换为日期+时间
ToDateTime(<字符串>)
ToTimestamp
将字符串转换为时间戳
ToTimestamp(<字符串>)
ToTimeZone
将日期+时间转换为时区
ToTimeZone(<日期>,<时区>)
TruncDate
将日期+时间舍入到最接近的秒数
TruncDate(@lastModified, <秒数>)
TruncDateTZ
将日期+时间舍入为以秒表示的精度
TruncDateTZ(<日期>, <秒数>, <时区>>)
TruncQuarter
将日期舍入到季度
TruncQuarter(<日期>)
TruncTime
将时间部分舍入到最接近的秒
TruncTim(e<日期>, <秒数>)
TruncWeek
将日期舍入到周
TruncWeek(<日期>)
TruncYear
将日期+时间舍入到年度的 1 月 1 日
TruncYear(<日期>)
WeekDay
返回表示日期一周中某天的数字(0=星期一,6=星期日)
WeekDay(<日期>)
Year
返回表示日期年份的数字
Year(<日期>)
YearAnd Month
返回表示日期的年份和月份的数字
YearAndMonth(<日期>)
年前
返回给定日期与当前日期之间的年数
YearsAgo(<日期>)
YearsDiff
返回两个日期之间的年数之差
YearsDiff(<结束日期>, <开始日期>)
YearsOld
返回日期的年龄(以年为单位)
YearsOld(<日期>)
NOTE
请注意,Dateonly ​函数考虑的是服务器的时区,而不是运算符的时区。

地理位置营销

利用地理位置营销函数来操作地理值。

名称
说明
语法
Distance
返回由经度和纬度定义的两点之间的距离,以度表示。
Distance(<经度 A>, <纬度 A>, <经度 B>, <纬度 B>)

数值

数值函数用于将文本转换为数字。

名称
说明
语法
Abs
返回数字的绝对值
Abs(<数字>)
Ceil
返回大于或等于某个数字的最小整数
Ceil(<数字>)
Floor
返回大于或等于数字
的最大整数
Floor(<数字>)
Greatest
返回两个数字中的较大者
Greatest(<数字 1>, <数字 2>)
Least
返回两个数字中的较小者
Least(<数字 1>, <数字 2>)
Mod
返回n1除以n2
的整数除余数
Mod(<数字 1>, <数字 2>)
Percent
返回两个数字的比值,以百分比表示
Percent(<数字 1>, <数字 2>)
Random
返回随机值
Random()
Round
将数字舍入为 n 位小数
Round(<数字>, <小数>)
Sign
返回数字的符号
Sign(<数字>)
ToDouble
将整数转换为浮点
ToDouble(<数字>)
ToInt64
将浮点转换为 64 位整数
ToInt64(<数字>)
ToInteger
将浮点转换为整数
ToInteger(<数字>)
Trunc
将 n1 取整到 n2 位小数
Trunc(<n1>, <n2>)

其他

此表包含剩余的可用函数。

名称
说明
语法
AESEncrypt
加密参数
中提供的字符串
AESEncrypt(<值>)
Case
如果条件为true,则返回值1。 如果不存在,则返回值2.
Case(When(<条件>, <值 1>), Else(<值 2>))
ClearBit
删除值中的标志
ClearBit(<标识符>, <标识>)
Coalesce
如果值 1 为 0 或 null,则返回值 2,否则返回值 1
Coalesce(<值 1>, <值 2>)
Decode
如果值1 =值2,则返回值3。 如果未返回值4.
Decode(<值 1>, <值 2>, <值 3>, <值 4>)
Else
返回值 1(只能用作 case 函数的参数)
Else(<值1>, <值2>)
GetEmailDomain
从电子邮件地址提取域名
GetEmailDomain(<值>)
GetMirrorURL
检索镜像页面服务器的 URL
GetMirrorURL(<值>)
Iif
如果表达式为true,则返回值1。 如果不存在,则返回值2
Iif(<条件>, <值 1>, <值 2>)
IsBitSet
指示标志是否在值中
IsBitSet(<标识符>, <标识>)
IsEmptyString
如果字符串1为空,则返回值2,否则返回值3
IsEmptyString(<值1>, <值2>, <值3>)
NewUUID
返回唯一ID
NewUUID()
NoNull
如果参数为 NULL,则返回空字符串
NoNull(<值>)
RowId
返回行号
RowId
SetBit
强制将标志设在值中
SetBit(<标识符>, <标识>)
ToBoolean
将数字转换为布尔值
ToBoolean(<数字>)
When
如果表达式为true,则返回值1。 如果不是,则返回值2(只能用作case函数的参数)
When(<条件>, <值 1>)

字符串

字符串函数用于操作一系列字符串。

名称
说明
语法
AllNonNull2
指示所有参数是否为非 null 且不为空
AllNonNull2(<字符串>, <字符串>)
AllNonNull3
指示所有参数是否为非 null 且不为空
AllNonNull3(<字符串>, <字符串>, <字符串>)
Ascii
返回字符串中第一个字符的ASCII值。
Ascii(<字符串>)
Char
返回与 ASCII 代码"n"对应的字符
Char(<数字>)
Charindex
返回字符串1中字符串2的位置。
Charindex(<字符串>, <字符串>)
数据长度
返回字符串
的大小(以字节为单位)
dataLength(<字符串>)
GetLine
返回字符串的 n(从 1 到 n)行
GetLine(<字符串>)
IfEquals
如果前两个参数相等,则返回第三个参数。 如果不是,则返回最后一个参数
IfEquals(<字符串>, <字符串>, <字符串>, <字符串>)
IsMemoNull
指示作为参数传递的 Memo 是否为 null
IsMemoNull(<memo>)
JuxtWords
将作为参数传递的字符串连接起来。 如有必要,在字符串之间添加空格。
JuxtWords(<字符串>, <字符串>)
JuxtWords3
将作为参数传递的字符串连接起来。 如有必要,在字符串之间添加空格
JuxtWords3(<字符串>, <字符串>, <字符串>)
Left
返回字符串的前 n 个字符
Left(<字符串>, <数字>)
Length
返回字符串
的长度
Length(<字符串>)
从字符串
中提取行n
Line(<字符串>,<数字>)
Lower
以小写形式返回字符串
Lower(<字符串>)
LPad
返回左侧的已完成字符串
LPad (<字符串>, <数字>, <字符>)
Ltrim
删除字符串左侧的空格
Ltrim(<字符串>)
Md5Digest
返回字符串以十六进制表示的 MD5 键值
Md5Digest(<字符串>)
MemoContains
指定 Memo 是否包含作为参数传递的字符串
MemoContains(<memo>, <字符串>)
节点值
从其XPath和字段数据提取XML字段的值
NodeValue (<字符串>, <字符串>)
Replace
将指定字符串值的所有匹配项替换为其他字符串值。
Replace(<字符串>,<字符串>,<字符串>)
Right
返回字符串的最后 n 个字符
Right(<字符串>)
RPad
返回右侧的已完成字符串
RPad(<字符串>, <数字>, <字符>)
Rtrim
删除字符串右侧的空格
Rtrim(<字符串>)
Sha256Digest
字符串的SHA256键的十六进制表示形式。
Sha256Digest (<字符串>)
Sha512Digest
字符串的SHA512键的十六进制表示形式。
Sha512Digest (<字符串>)
Smart
以大写方式返回带每个单词的第一个字母的字符串
Smart(<字符串>)
Substring
提取从字符串的字符n1开始的、长度为n2
的子字符串
Substring(<字符串>, <偏移>, <长度>)
ToString
将数字转换为字符串
ToString(<数字>, <数字>)
Upper
返回以大写表示的字符串
Upper(<字符串>)
VirtualLink
如果其他两个参数相等,则返回作为参数传递的链接的外键
VirtualLink(<数字>, <数字>, <数字>)
VirtualLinkStr
如果其他两个参数相等,则返回作为参数传递的链接的外键(文本)
VirtualLinkStr(<字符串>, <数字>, <数字>)

窗口

名称
说明
语法
_超过__
执行作为第1参数输入的SQL函数调用,通过Partition或Order By作为第2参数
输入的字段
超过_ (<值>, <值>)
(_Over_)
Desc
应用降序排序
Desc(<值 1>)
OrderBy
对分区中的结果进行排序
OrderBy(<值 1>)
PartitionBy
对表格上的查询结果进行分区
PartitionBy(<值 1>)
RowNum
根据表分区和排序顺序生成行号。
RowNum(PartitionBy(<值 1>), OrderBy(<值 1>))
recommendation-more-help
c39c2d00-ba9a-424b-adf9-66af58a0c34b