利用查询编辑工具,可使用高级函数进行复杂筛选。为实现此目的,工具面板提供了可用于工作区的 Expression 元素。有关此元素的详细信息,请参阅特定章节。
利用此元素,可手动输入条件。您可以在此使用以下部分中定义的函数。
根据所需结果和操作数据的类型,可使用以下几种函数类型:
所有活动中都提供了其他函数,通过该函数,可在使用外部参数调用工作流后使用事件变量。 有关详情,请参阅 本节.
日期函数用于操作日期或时间值。
名称 |
说明 |
语法 |
AddDays |
向日期添加天数 |
AddDays(<日期>, <数字>) |
AddHours |
向日期添加小时数 |
AddHours(<日期>, <数字>) |
AddMinutes |
向日期添加分钟数 |
AddMinutes(<日期>, <数字>) |
AddMonths |
向日期添加月数 |
AddMonths(<日期>, <数字>) |
AddSeconds |
向日期添加秒数 |
AddSeconds(<日期>, <数字>) |
AddYears |
向日期添加年数 |
AddYears(<日期>, <数字>) |
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(<结束日期>, <开始日期>) |
LocalToUTC |
将本地日期和时间转换为 UTC 时区 |
LocalToUTC(<日期>, <时区>>) |
Minute |
返回日期的分钟数 |
Minute(<日期>) |
MinutesDiff |
返回两个日期之间的分钟数之差 |
MinutesDiff(<结束日期>, <开始日期>) |
Month |
返回表示日期月份的数字 |
Month(<日期>) |
MonthsAgo |
返回对应于当前日期 n 个月的日期 |
MonthsAgo(<数字>) |
MonthsDiff |
返回两个日期之间的月数之差 |
MonthsDiff(<结束日期>, <开始日期>) |
MonthsOld |
返回日期的年龄(以月为单位) |
MonthsOld(<日期>) |
Second |
返回日期的秒数 |
Second(<日期>) |
Oldest |
返回最早的日期 | Oldest(<日期>, <日期>) |
SecondsDiff |
返回两个日期之间的秒数之差 |
SecondsDiff(<结束日期>, <开始日期>) |
SubDays |
从日期减去天数 |
SubDays(<日期>, <数字>) |
SubHours |
从日期减去小时数 |
SubHours(<日期>, <数字>) |
SubMinutes |
从日期减去分钟数 |
SubMinutes(<日期>, <数字>) |
SubMonths |
从日期减去月数 |
SubMonths(<日期>, <数字>) |
SubSeconds |
从日期减去秒数 |
SubSeconds(<日期>, <数字>) |
SubYears |
从日期减去年数 |
SubYears(<日期>, <数字>) |
ToDate |
将日期+时间转换为日期 |
ToDate(<日期 + 时间>) |
ToDateTime |
将字符串转换为日期+时间 |
ToDateTime(<字符串>) |
ToDateTimeWithTimezone |
将字符串转换为日期+时区。 示例: ToDateTimeWithTimezone ("2019-02-19 08:09:00”、“亚洲/德黑兰”) |
ToDateTimeWithTimezone(<字符串>) |
TruncDate |
将日期+时间舍入到最接近的秒数 |
TruncDate(@lastModified, <秒数>) |
TruncDateTZ |
将日期+时间舍入为以秒表示的精度 |
TruncDateTZ(<日期>, <秒数>, <时区>>) |
TruncQuarter |
将日期舍入到季度 |
TruncQuarter(<日期>) |
TruncTime |
将时间部分舍入到最接近的秒 |
TruncTime(<日期>, <秒数>) |
TruncWeek |
将日期舍入到周 |
TruncWeek(<日期>) |
TruncYear |
将日期+时间舍入到年度的 1 月 1 日 |
TruncYear(<日期>) |
WeekDay |
返回表示日期一周中某天的日期数字 |
WeekDay(<日期>) |
Year |
返回表示日期年份的数字 |
Year(<日期>) |
YearAnd Month |
返回表示日期的年份和月份的数字 |
YearAndMonth(<日期>) |
YearsDiff |
返回两个日期之间的年数之差 |
YearsDiff(<结束日期>, <开始日期>) |
YearsOld |
返回日期的年龄(以年为单位) |
YearsOld(<日期>) |
利用地理位置营销函数来操作地理值。
名称 |
说明 |
语法 |
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>) |
此表包含剩余的可用函数。
名称 |
说明 |
语法 |
Case |
如果条件已验证,则返回值 1。否则,返回值 2 |
Case(When(<条件>, <值 1>), Else(<值 2>)) |
ClearBit |
删除值中的标志 |
ClearBit(<标识符>, <标识>) |
Coalesce |
如果值 1 为 0 或 null,则返回值 2,否则返回值 1 |
Coalesce(<值 1>, <值 2>) |
Decode |
返回值 3 的条件是值 1 = 值 2,否则返回值 4 |
Decode(<值 1>, <值 2>, <值 3>, <值 4>) |
Else |
返回值 1(只能用作 case 函数的参数) |
Else(<值 1>) |
GetEmailDomain |
从电子邮件地址提取域名 |
GetEmailDomain(<值>) |
GetMirrorURL |
检索镜像页面服务器的 URL |
GetMirrorURL(<值>) |
Iif |
如果表达式为 true,则返回值 1,否则返回值 2 |
Iif(<条件>, <值 1>, <值 2>) |
IsBitSet |
指示标志是否在值中 |
IsBitSet(<标识符>, <标识>) |
IsEmptyString |
如果字符串为空,则返回值 2,否则返回值 3 |
IsEmptyString(<字符串>, <值 2>, <值 3>) |
NoNull |
如果参数为 NULL,则返回空字符串 |
NoNull(<值>) |
RowId |
返回行号 |
RowId |
SetBit |
强制将标志设在值中 |
SetBit(<标识符>, <标识>) |
ToBoolean |
将数字转换为布尔值 |
ToBoolean(<数字>) |
When |
如果验证了表达式,则返回值 1。否则,返回值 2(只能用作 case 函数的参数) |
When(<条件>, <值 1>) |
newUUID |
返回新的 UUID。 |
newUUID |
字符串函数用于操作一系列字符串。
名称 |
说明 |
语法 |
AllNonNull2 |
指示所有参数是否为非 null 且不为空 |
AllNonNull2(<字符串>, <字符串>) |
AllNonNull3 |
指示所有参数是否为非 null 且不为空 |
AllNonNull3(<字符串>, <字符串>, <字符串>) |
ASCII |
返回字符串中第一个字符的 ASCII 值 |
Ascii(<字符串>) |
Char |
返回与 ASCII 代码"n"对应的字符 |
Char(<数字>) |
Charindex |
返回字符串 1 中字符串 2 的位置 |
Charindex(<字符串>, <字符串>) |
DataLength |
返回字符串中的字符数 |
DataLength(<字符串>) |
GetLine |
返回字符串的 n(从 1 到 n)行 |
GetLine(<字符串>) |
IfEquals |
如果前两个参数相等,则返回第三个参数,否则返回最后一个参数 |
IfEquals(<字符串>, <字符串>, <字符串>, <字符串>) |
IsMemoNull |
指示作为参数传递的 Memo 是否为 null |
IsMemoNull(<Memo>) |
JuxtWords |
将作为参数传递的两个字符串连接起来。 返回值中的各个字符串之间会添加一个空格。 |
JuxtWords(<字符串>, <字符串>) |
JuxtWords3 |
将作为参数传递的三个字符串连接起来。 返回值中的各个字符串之间会添加一个空格。 |
JuxtWords3(<字符串>, <字符串>, <字符串>) |
LPad |
返回左侧的已完成字符串 |
LPad(<字符串>, <数字>, <caractère>) |
Left |
返回字符串的前 n 个字符 |
Left(<字符串>, <数字>) |
Length |
返回字符串的长度 |
Length(<字符串>) |
Lower |
以小写形式返回字符串 |
Lower(<字符串>) |
Ltrim |
删除字符串左侧的空格 |
Ltrim(<字符串>) |
Md5Digest |
返回字符串以十六进制表示的 MD5 键值 |
Md5Digest(<字符串>) |
MemoContains |
指定 Memo 是否包含作为参数传递的字符串 |
MemoContains(<memo>, <字符串>) |
RPad |
返回右侧的已完成字符串 |
RPad(<字符串>, <数字>, <字符>) |
Replace |
将出现的所有指定字符串(第 2 个参数)值替换为字符串(第 1 个参数)中的另一个字符串值(第 3 个参数) |
Replace(<字符串>, <字符串>, <字符串>) |
Right |
返回字符串的最后 n 个字符 |
Right(<字符串>) |
Rtrim |
删除字符串右侧的空格 |
Rtrim(<字符串>) |
Sha256Digest |
计算给定 UTF8 字符串的标准 SHA256 哈希 |
Sha256Digest(<字符串>) |
Sha384Digest |
计算给定 UTF8 字符串的标准 SHA384 哈希 |
Sha384Digest(<字符串>) |
Sha512Digest |
计算给定 UTF8 字符串的标准 SHA512 哈希 |
Sha512Digest(<字符串>) |
Smart |
以大写方式返回带每个单词的第一个字母的字符串 |
Smart(<字符串>) |
Substring |
提取从字符串的字符 n1 开始的、长度为 n2 的子字符串 |
Substring(<字符串>, <偏移>, <长度>) |
ToIntlString |
将数字转换为字符串 |
ToIntlString(<数字>) |
ToString |
将数字转换为字符串 |
ToString(<数字>) |
Upper |
返回以大写表示的字符串 |
Upper(<字符串>) |
VirtualLink |
如果其他两个参数相等,则返回作为参数传递的链接的外键 |
VirtualLink(<数字>, <数字>, <数字>) |
VirtualLinkStr |
如果其他两个参数相等,则返回作为参数传递的链接的外键(文本) |
VirtualLinkStr(<字符串>, <数字>, <数字>) |
encryption_aescbcDecrypt |
使用十六进制格式的密钥(第 2 个参数)和用十六进制格式的初始化矢量(第 3 个参数),对以"x"为前缀的十六进制格式加密值(第 1 个参数)进行解密 |
encryption_aescbcDecrypt(<字符串>, <字符串>, <字符串>) |
encryption_aescbcEncrypt |
使用 AES 算法(CBC 块模式),用密钥(第 2 个参数)和初始化矢量(第 3 个参数)对字符串(第 1 个参数)进行加密。密钥和初始化矢量必须以十六进制表示形式提供(以 \x 开头)。结果将以十六进制表示,但不带 \x。 请注意,密钥大小可以是 128 位、192 位、256 位(16、24、32 个十六进制字符),但建议您使用 256 位和与密钥长度相同的随机 IV。 |
encryption_aescbcEncrypt(<string>, <string>, <string>) 例如:encryption_aescbcEncrypt(johndoe@example.com, "\\x0123456789ABCDEF0123456789ABCDEF“, ”\\x0123456789ABCDEFFEDCBA9876543210") |
只有从工作流的 Query 活动添加其他数据时,聚合函数才可用。
聚合函数用于对一组值执行计算。
名称 |
说明 |
语法 |
Avg,Average |
返回数值列中的平均值。 |
Avg(<值>) |
Count,Count (except NULL) |
计算列中的非空值。 |
Count(<值>) |
CountAll, Count all |
计算所有值(包括 null 值和重复项)。 |
CountAll() |
Countdistinct, Distinct count |
计算列中非空的不同值。 |
Countdistinct(<值>) |
Max, Max |
返回数字、字符串或日期列中的最大值。 |
Max(<值>) |
Min, Min |
返回数字、字符串或日期列中的最小值。 |
Min(<值>) |
字符串聚合,字符串聚合 |
返回字符串类型列的值的连接,由第二个参数中的字符分隔(默认分隔符为逗号)。 |
StringAgg(<string values="">,<separator>) |
Sum, Sum |
返回数值列中值的和。 |
Sum(<值>) |
表示函数用于对值进行排序。
名称 |
说明 |
语法 |
Desc |
应用降序排序 |
Desc(<值 1>) |
OrderBy |
对分区中的结果进行排序 |
OrderBy(<值 1>) |
PartitionBy |
对表格上的查询结果进行分区 |
PartitionBy(<值 1>) |
RowNum |
根据表分区和排序序列生成行号。MySQL 不支持此函数 |
RowNum(PartitionBy(<值 1>), OrderBy(<值 1>)) |