在筛选条件中,您需要使用运算符将两个值链接在一起。
以下是可用运营商的列表:
运算符 |
用途 |
示例 |
---|---|---|
等于 |
返回与在第二个“值”列中输入的数据相同的结果。 |
姓氏(@lastName)等于“Jones”,将仅返回姓为Jones的收件人。 |
大于 |
返回大于输入值的值。 |
年龄(@age)大于50,将返回所有大于“50”的值,即“51”、“52”等。 |
小于 |
返回小于输入值的值。 |
创建日期(@created)早于“DaysAgo(100)”,将返回在100天前创建的所有收件人。 |
大于或等于 |
返回等于或大于输入值的所有值。 |
年龄(@age)大于或等于“30”,将返回所有30岁或以上的收件人。 |
小于或等于 |
返回等于或低于输入值的所有值。 |
年龄(@age)小于或等于“60”,将返回所有年龄在60岁或以下的收件人。 |
不等于 |
返回与输入值不同的所有值。 |
语言(@language)等于“英语”。 |
开始 |
返回以输入的值开始的结果。 |
帐户#(@account)开始(“32010”)。 |
不开始 |
返回不以输入的值 开头的结果 |
帐户#(@account)不开始为“20”。 |
包含 |
返回至少包含输入值的结果。 |
电子邮件域(@domain)包含“mail”,将返回所有包含“mail”的域名。因此,“gmail.com”域也将返回。 |
不包含 |
返回不包含输入值的结果。 |
电子邮件域(@domain)不包含“vo”。在这种情况下,将不返回包含“vo”的域名。 结果中不显示“voila.fr”域名。 |
相似 |
相似与包含运算符非常相似。它允许您在值中插入%通配符。 |
姓氏(@lastName),如“Jon%s”。此处,通配符用作“小丑”来查找名称“Jones”,如果操作员忘记“n”和“s”之间缺少的字母。 |
不相似 |
与 相似相同。允许您不恢复输入的值。 在本例中,输入的值也必须包含 % 个通配符字段。 |
姓氏(@lastName)与“Smi%h”不同。此处,将不返回姓为“Smi%h”的收件人。 |
为空 |
在这种情况下,我们要查找的结果与第二个“值”列中的空值匹配。 |
Mobile(@mobilePhone)是空 的返回所有没有手机号码的收件人。 |
不为空 |
与Is empty运算符相反。 不必在第二个值列中输入数据。 |
电子邮件(@email)不为空。 |
包含在 |
返回包含在指定值中的结果。 这些值必须用逗号分隔。 |
出生日期(@birthDate)包含在'12/10/1979,12/10/1984'中,将返回这些日期之间出生的收件人。 |
不包含在 |
类似的工作包含在运算符中。 此处,我们要根据输入的值排除收件人。 |
出生日期(@birthDate)不包括在'12/10/1979,12/10/1984'中。与上例不同,不返回在这些日期内生成的收件人。 |
对于使用多个筛选条件的查询,您需要定义这些条件之间的链接。 可能有三个链接:
单击And(默认提供)并从下拉列表中进行选择。
And:添加条件并启用过滤。
Or:添加条件并启用过滤。
以下示例允许您查找其电子邮件域包含“orange.co.uk”或其帖子代码开始带有“NW”的收件人。
Except:如果您有两个过滤器,而第一个链接不返回值,则此类型的链接会创建异常。
在以下示例中,我们要返回其电子邮件域包含“orange.co.uk”的收件人,除非收件人的姓是“Smith”。
此示例显示了一个可显示的筛选器:说西班牙语的收件人,或者是带有移动号码的收件人,或者是没有帐号的公司,其名开始字母“N”。
此部分介绍如何利用工具栏中的蓝色箭头对条件进行优先排序。
向右箭头允许您向筛选器添加一级括号。
指向左侧的箭头允许您从筛选器中删除选定的括号级别。
垂直箭头允许您移动条件,从而更改其执行顺序。
此示例说明如何使用箭头删除括号级别。 开始来自以下筛选条件:City equal to London OR gender equal to male and mobile not indicated OR account # starts with “95” and company name starts with “A”。
将光标放在Gender (@gender) equal to Male过滤条件上并单击Remove a parenthesis level箭头。
Gender (@gender) equal to Male条件已超出其括号。 它已升至与“伦敦金融城与伦敦相当”的水平。 这些条件链接在一起(And)。
可用字段因表而异。 所有字段都存储在称为Main element的主节点中。 在以下示例中,可用字段位于收件人表中。 字段始终按字母顺序显示。
选定字段的详细信息显示在窗口底部。 例如,Email domain字段是Calculated SQL field,其扩展名是(@domain)。
使用Search工具查找可用字段。
多次单击可用字段,将其添加到输出列。 在查询的末尾,每个选定字段在Data preview窗口中创建一列。
默认情况下,高级字段不显示。 单击可用字段右下角的Display advanced fields可显示所有内容。 再次单击可返回到前一个视图。
例如,在收件人表中,高级字段为布尔值1、Boolean 2、Boolean 3、Foreign key of “Folder” link等。
以下示例显示了收件人表的高级字段。
各类别字段:
图标 |
说明 |
示例 |
---|---|---|
![]() |
简单字段 |
电子邮件、性别等 |
![]() |
主键。 此SQL字段是标识表中记录的方法。 |
标识符收件人是主键,标识符按定义是唯一的。 |
![]() |
外键。 用作指向另一个表的链接。 |
收件人外键、服务外键等。 |
![]() |
计算字段。 此类型的字段是使用数据库中的值在请求时计算的。 |
年龄、电子邮件域等。 |
![]() |
包含长文本的字段。 |
注释、完整地址等。 |
![]() |
索引SQL字段。 |
全名、ISO代码等。 |
链接到表和集合元素:
图标 |
说明 |
示例 |
---|---|---|
![]() |
尤其是指向表的链接。 这些关联与1-1类型关联一致。 源表的出现只能与目标表的一个出现一致。 例如,只能将一个收件人链接到国家/地区。 |
文件夹、状态、国家/地区等。 |
![]() |
特定表上的集合元素。 这些关联与1-N类型关联一致。 一个源表出现可以与目标表出现的几个出现一致,但目标表出现的一个可以与源表的唯一出现一致。 例如,一个收件人可以订阅“n”订阅字母。 |
订阅、列表、排除日志等。 |
如有必要,请在数据格式化过程中添加列。 计算字段会向数据预览部分添加列。 单击 Add a calculated field.
有四种类型的计算字段:
Fixed string:允许您添加字符串。
String with JavaScript tags:计算字段的值结合了字符串和JavaScript指令。
JavaScript expression:计算字段的值是JavaScript函数评估的结果。可以键入返回的值(数字、日期等)。
Enumerations:此类型的字段允许您使用/修改新列中某个输出列的内容。
可以使用列的源值并为其指定目标值。 此目标值将显示在新输出列中。
添加计算字段类型Enumerations的示例可用,请参阅此部分。
Enumerations类型计算字段可以包括4个条件:
单击Detail of calculated field视图插入字段的详细信息。
要删除此计算字段,请单击Remove the calculated field叉号。
表达式编辑工具允许您使用表达式计算聚合、生成函数或编辑公式。
以下示例显示如何运行对主键的计数。
应用以下步骤:
在Data to extract窗口中单击Add。 在Formula type窗口中,选择要输入表达式的公式类型。
可用的公式有几种类型:Field only、Aggregate、Expression。
选择Process on an aggregate function和Count。单击Next。
将计算主键。
以下是Formula types窗口中可用选项的详细视图:
Field only 让您返回窗 Field to select 口。
Aggregate (Process on an aggregate function).以下是一些聚合使用示例:
Count 允许您运行主键计数。
Sum 允许您将客户在一年以上进行的所有购买相加。
Maximum value 允许您查找已购买最“n”产品的客户。
Minimum value 允许您对客户进行排序,找到最近订阅了优惠的客户。
Average.此函数允许您计算收件人的平均年龄。
使用Distinct框可恢复列的唯一值和非零值。 例如,您可以恢复收件人的所有跟踪日志,这些跟踪日志将更改为值1,因为它们都涉及相同的收件人。
Expression 打开窗 Edit the expression 口。这样,您就可以检测到数字过多的电话号码,这可能是输入错误。
有关所有可用函数的列表,请参阅函数列表。
如果选择Expression类型的公式,您将进入“编辑表达式”窗口。 可以将各种类别函数关联到可用字段:Aggregates、String、Date、Numerical、Currency、Geomarketing、Windowing function和Others。
表达式编辑器如下所示:
它允许您选择数据库表中的字段,并向它们添加高级函数。 提供以下功能:
聚合
名称 |
说明 |
语法 |
平均 |
返回数字类型列 的平均值 |
Avg(<值>) |
计数 |
计算列 的非空值 |
Count(<值>) |
CountAll |
计算返回的值(所有字段) |
CountAll() |
Countdistinct |
计算列 的不同非空值 |
Countdistinct(<值>) |
Max |
返回数字、字符串或日期类型列 的最大值 |
Max(<值>) |
最小 |
返回数字、字符串或日期类型列 的最小值 |
Min(<值>) |
StdDev |
返回数字、字符串或日期列的标准偏差 |
StdDev(<value>) |
总和 |
返回数字、字符串或日期类型列 的值之和 |
Sum(<值>) |
字符串
名称 |
说明 |
语法 |
AllNonNull2 |
指示所有参数是否为非 null 且不为空 |
AllNonNull2(<字符串>, <字符串>) |
AllNonNull3 |
指示所有参数是否为非 null 且不为空 |
AllNonNull3(<字符串>, <字符串>, <字符串>) |
Ascii |
返回字符串中第一个字符的 ASCII 值. |
Ascii(<字符串>) |
Char |
返回与 ASCII 代码"n"对应的字符 |
Char(<数字>) |
Charindex |
返回字符串 1 中字符串 2 的位置. |
Charindex(<字符串>, <字符串>) |
GetLine |
返回字符串的 n(从 1 到 n)行 |
GetLine(<字符串>) |
IfEquals |
如果前两个参数相等,则返回第三个参数。 否则,返回最后一个参数 |
IfEquals(<字符串>, <字符串>, <字符串>, <字符串>) |
IsMemoNull |
指示作为参数传递的 Memo 是否为 null |
IsMemoNull(<memo>) |
JuxtWords |
连接作为参数传递的字符串。 如有必要,在字符串之间添加空格。 |
JuxtWords(<字符串>, <字符串>) |
JuxtWords3 |
连接作为参数传递的字符串。 如有必要,在字符串之间添加空格 |
JuxtWords3(<字符串>, <字符串>, <字符串>) |
LPad |
返回左侧的已完成字符串 |
LPad(<string>, <number>, <character>) |
Left |
返回字符串的前 n 个字符 |
Left(<字符串>, <数字>) |
Length |
返回字符串 的长度 |
Length(<字符串>) |
Lower |
以小写形式返回字符串 |
Lower(<字符串>) |
Ltrim |
删除字符串左侧的空格 |
Ltrim(<字符串>) |
Md5Digest |
返回字符串以十六进制表示的 MD5 键值 |
Md5Digest(<字符串>) |
MemoContains |
指定 Memo 是否包含作为参数传递的字符串 |
MemoContains(<memo>, <字符串>) |
RPad |
返回右侧的已完成字符串 |
RPad(<字符串>, <数字>, <字符>) |
Right |
返回字符串的最后 n 个字符 |
Right(<字符串>) |
Rtrim |
删除字符串右侧的空格 |
Rtrim(<字符串>) |
Smart |
以大写方式返回带每个单词的第一个字母的字符串 |
Smart(<字符串>) |
Substring |
从字符串的字符n1开始提取长度为n2 的子字符串 |
Substring(<字符串>, <偏移>, <长度>) |
ToString |
将数字转换为字符串 |
ToString(<number>, <number>) |
Upper |
返回以大写表示的字符串 |
Upper(<字符串>) |
VirtualLink |
如果其他两个参数相等,则返回作为参数传递的链接的外键 |
VirtualLink(<数字>, <数字>, <数字>) |
VirtualLinkStr |
如果其他两个参数相等,则返回作为参数传递的链接的外键(文本) |
VirtualLinkStr(<字符串>, <数字>, <数字>) |
dataLength |
返回字符串大小 |
dataLength(<string>) |
日期
名称 |
说明 |
语法 |
AddDays |
向日期添加天数 |
AddDays(<日期>, <数字>) |
AddHours |
向日期添加小时数 |
AddHours(<日期>, <数字>) |
AddMinutes |
向日期添加分钟数 |
AddMinutes(<日期>, <数字>) |
AddMonths |
向日期添加月数 |
AddMonths(<日期>, <数字>) |
AddSeconds |
向日期添加秒数 |
AddSeconds(<日期>, <数字>) |
AddYears |
向日期添加年数 |
AddYears(<日期>, <数字>) |
DateOnly |
仅返回日期(时间为00:00)* |
DateOnly(<日期>) |
Day |
返回表示日期天数的数字 |
Day(<日期>) |
DayOfYear |
返回日期 年中的日数 |
DayOfYear(<日期>) |
DaysAgo |
返回与当前日期相对应的日期减n天 |
DaysAgo(<数字>) |
DaysAgoInt |
返回与当前日期相对应的日期(整数yyyymmdd)减去n天 |
DaysAgoInt(<数字>) |
DaysDiff |
两个日期之间的天数差 |
DaysDiff(<结束日期>, <开始日期>) |
DaysOld |
返回日期的年龄(以天为单位) |
DaysOld(<日期>) |
GetDate |
返回服务器的当前系统日期 |
GetDate() |
Hour |
返回日期的小时数 |
Hour(<日期>) |
HoursDiff |
返回两个日期之间的小时数之差 |
HoursDiff(<结束日期>, <开始日期>) |
Minute |
返回日期的分钟数 |
Minute(<日期>) |
MinutesDiff |
返回两个日期之间的分钟数之差 |
MinutesDiff(<结束日期>, <开始日期>) |
Month |
返回表示日期月份的数字 |
Month(<日期>) |
MonthsAgo |
返回对应于当前日期 n 个月的日期 |
MonthsAgo(<数字>) |
MonthsDiff |
返回两个日期之间的月数之差 |
MonthsDiff(<结束日期>, <开始日期>) |
MonthsOld |
返回日期的年龄(以月为单位) |
MonthsOld(<日期>) |
Second |
返回日期的秒数 |
Second(<日期>) |
SecondsDiff |
返回两个日期之间的秒数之差 |
SecondsDiff(<结束日期>, <开始日期>) |
SubDays |
从日期减去天数 |
SubDays(<日期>, <数字>) |
SubHours |
从日期减去小时数 |
SubHours(<日期>, <数字>) |
SubMinutes |
从日期减去分钟数 |
SubMinutes(<日期>, <数字>) |
SubMonths |
从日期减去月数 |
SubMonths(<日期>, <数字>) |
SubSeconds |
从日期减去秒数 |
SubSeconds(<日期>, <数字>) |
SubYears |
从日期减去年数 |
SubYears(<日期>, <数字>) |
ToDate |
将日期+时间转换为日期 |
ToDate(<日期 + 时间>) |
ToDateTime |
将字符串转换为日期+时间 |
ToDateTime(<字符串>) |
TruncDate |
将日期+时间舍入到最接近的秒数 |
TruncDate(@lastModified, <秒数>) |
TruncDateTZ |
将日期+时间舍入为以秒表示的精度 |
TruncDateTZ(<日期>, <秒数>, <时区>>) |
TruncQuarter |
将日期舍入到季度 |
TruncQuarter(<日期>) |
TruncTime |
将时间部分舍入到最接近的秒 |
TruncTim(e<date>, <秒数>) |
TruncWeek |
将日期舍入到周 |
TruncWeek(<日期>) |
TruncYear |
将日期+时间舍入到年度的 1 月 1 日 |
TruncYear(<日期>) |
TruncWeek |
返回表示日期一周中某天的日期数字 |
WeekDay(<日期>) |
Year |
返回表示日期年份的数字 |
Year(<日期>) |
YearAnd Month |
返回表示日期的年份和月份的数字 |
YearAndMonth(<日期>) |
YearsDiff |
返回两个日期之间的年数之差 |
YearsDiff(<结束日期>, <开始日期>) |
YearsOld |
返回日期的年龄(以年为单位) |
YearsOld(<日期>) |
请注意,Dateonly函数会考虑服务器的时区,而不是运算符的时区。
数值
名称 |
说明 |
语法 |
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>) |
名称 |
说明 |
语法 |
转换货币 |
将以源货币表示的金额转换为以目标货币表示的金额 |
ConvertCurrency(<amount>, <source currency>, <目标货币>, <转换日期>) |
格式货币 |
设置根据所选货币设置显示金额的格式 |
FormatCurrency(<amount>, <currency>) |
地理位置营销
名称 |
说明 |
语法 |
Distance |
返回由经度和纬度定义的两个点之间的距离,以度表示。 |
Distance(<经度 A>, <纬度 A>, <经度 B>, <纬度 B>) |
其他
名称 |
说明 |
语法 |
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(<value 1>, <value 2>) |
GetEmailDomain |
从电子邮件地址 提取域 |
GetEmailDomain(<值>) |
GetMirrorURL |
检索镜像页面服务器的 URL |
GetMirrorURL(<值>) |
Iif |
如果表达式为true,则返回值1。 否则,返回值2 |
Iif(<条件>, <值 1>, <值 2>) |
IsBitSet |
指示标志是否在值中 |
IsBitSet(<标识符>, <标识>) |
IsEmptyString |
如果字符串1为空,则返回值2,否则返回值3 |
IsEmptyString(<value 1>, <value 2>, <value 3>) |
NoNull |
如果参数为 NULL,则返回空字符串 |
NoNull(<值>) |
RowId |
返回行号 |
RowId |
SetBit |
强制将标志设在值中 |
SetBit(<标识符>, <标识>) |
ToBoolean |
将数字转换为布尔值 |
ToBoolean(<数字>) |
When |
如果表达式为true,则返回值1。 否则,它返回值2(只能用作case函数的参数) |
When(<条件>, <值 1>) |
窗口函数
名称 |
说明 |
语法 |
Desc |
应用降序排序 |
Desc(<值 1>) |
OrderBy |
对分区中的结果进行排序 |
OrderBy(<值 1>) |
PartitionBy |
对表格上的查询结果进行分区 |
PartitionBy(<值 1>) |
RowNum |
根据表分区和排序顺序生成行号。 |
RowNum(PartitionBy(<值 1>), OrderBy(<值 1>)) |