在筛选条件中,您需要使用运算符将两个值链接在一起。
以下是可用运算符列表:
运算符 |
用途 |
示例 |
---|---|---|
等于 |
返回与在第二个值列中输入的数据相同的结果。 |
姓氏(@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”的收件人。 |
为空 |
在这种情况下,我们要查找的结果与第二个值列中的空值匹配。 |
移动设备(@mobilePhone)为空 返回没有移动号码的所有收件人。 |
不为空 |
与 为空 运算符。 无需在第二个值列中输入数据。 |
电子邮件(@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 交叉。
利用表达式编辑工具,可使用表达式计算聚合、生成函数或编辑公式。
以下示例显示如何对主键运行计数。
应用以下步骤:
单击 Add 在 Data to extract 窗口。 在 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 |
返回与当前日期减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(<日期>) |
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>, <number of="" seconds="">) |
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 |
将以源货币表示的金额转换为以目标货币表示的金额 |
ConvertCurrency(<amount>, <source currency="">, <target currency="">, <conversion date="">) |
FormatCurrency |
根据所选货币设置设置显示的金额的格式 |
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>, <value>) |
GetEmailDomain |
从电子邮件地址提取域名 |
GetEmailDomain(<值>) |
GetMirrorURL |
检索镜像页面服务器的 URL |
GetMirrorURL(<值>) |
Iif |
如果表达式为true,则返回值1。 如果没有,则返回值2 |
Iif(<条件>, <值 1>, <值 2>) |
IsBitSet |
指示标志是否在值中 |
IsBitSet(<标识符>, <标识>) |
IsEmptyString |
如果字符串1为空,则返回值2,否则返回值3 |
IsEmptyString(<value>, <value>, <value>) |
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>)) |