[也适用于v8]{class="badge positive" title="也适用于Campaign v8"}

定义过滤器条件 defining-filter-conditions

选择运算符 choosing-the-operator

在筛选条件中,您需要使用运算符将两个值链接在一起。

以下是可用的运算符列表:

运算符
用途
示例
等于
返回与在第二个Value列中输入的数据相同的结果。
姓氏(@lastName)等于“Jones” 将仅返回姓氏为Jones的收件人。
大于
返回大于输入值的值。
年龄(@age)大于50,将返回所有大于'50'的值,即'51'、'52'等。
小于
返回小于输入值的值。
创建日期(@created)早于“DaysAgo(100)” 时,将返回所有在100天内创建的收件人。
大于或等于
返回等于或大于输入值的所有值。
年龄(@age)大于或等于“30” 将返回年龄为30岁或以上的所有收件人。
小于或等于
返回等于或小于输入值的所有值。
年龄(@age)小于或等于“60” 将返回年龄为60岁或以下的所有收件人。
不等于
返回与输入值不相同的所有值。
语言(@language)等于“英语”
开始于
返回以输入的值开头的结果。
帐户# (@account)以“32010”开头。
不以开头
返回不以输入的值
开头的结果
帐户# (@account)不以“20” 开头。
包含
返回至少包含输入值的结果。
包含“mail”的电子邮件域(@domain) 将返回包含“mail”的所有域名。 因此,还将返回“gmail.com”域。
不包含
返回不包含输入值的结果。
电子邮件域(@domain)不包含“vo”。 在这种情况下,将不返回包含“vo”的域名。 'voila.fr'域名将不会显示在结果中。
相似
相似与包含运算符非常相似。它允许您在值中插入%通配符。
姓氏(@lastName),如“Jon%s”。 在本例中,如果操作员忘记了'n'和's'之间的缺少字母,则使用通配符作为“绝招”来查找名称“Jones”。
不相似
与Like相似。 用于不恢复输入的值。 在本例中,输入的值也必须包含 % 个通配符字段。
姓氏(@lastName)不像“Smi%h”。 在此,将不会返回姓氏为“Smi%h”的收件人。
为空
在这种情况下,我们要查找的结果与第二个“值”列中的空值匹配。
Mobile (@mobilePhone)为空 返回所有没有手机号码的收件人。
不为空
与Is empty运算符相反。 无需在第二“值”列中输入数据。
电子邮件(@email)不为空
包含在
返回指定值中包含的结果。 这些值必须以逗号分隔。
出生日期(@birthDate)包含在“12/10/1979,12/10/1984” 中,将返回这些日期之间出生的收件人。
未包含在
工作方式与运算符中的Include类似。 在此,我们要根据输入的值排除收件人。
出生日期(@birthDate)不包含在'12/10/1979,12/10/1984' 中。 与上一个示例不同,不会返回这些日期内出生的收件人。

使用AND、OR,但 using-and--or--except

对于使用多个筛选条件的查询,需要定义条件之间的链接。 有三种可能的链接:

  • And ​允许您组合两个过滤条件,
  • Or ​允许您提供替代方案,
  • Except ​允许您定义异常。

单击​ And(默认提供)并从下拉列表中选择。

  • And:添加条件并启用过度筛选。

  • Or:添加条件并启用过度筛选。

    以下示例允许您查找其电子邮件域包含“orange.co.uk”或其邮政编码以“NW”开头的收件人。

  • Except:如果您有两个过滤器,但第一个过滤器未返回值,则此类型的链接会创建异常。

    在以下示例中,我们希望返回其电子邮件域包含“orange.co.uk”的收件人,除非收件人的姓氏为“Smith”。

此示例显示了一个用于显示的过滤器:说西班牙语的收件人、使用手机号码的女性收件人、没有帐号且公司名称以字母“N”开头的收件人。

区分条件的优先级 prioritizing-conditions

本节将介绍如何借助工具栏中的蓝色箭头来排列条件的优先级。

  • 通过指向右侧的箭头,可以向过滤器添加一定级别的圆括号。

  • 通过指向左侧的箭头,可从筛选器中删除选定的括号级别。

  • 垂直箭头允许您移动条件,从而更改其执行顺序。

此示例说明如何使用箭头删除括号级别。 从以下筛选条件开始: 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)。

选择要提取的数据 selecting-data-to-extract

可用字段因表而异。 所有字段都存储在称为​ Main element ​的主节点中。 在以下示例中,可用字段位于收件人表中。 字段始终按字母顺序显示。

所选字段的详细信息将显示在窗口底部。 例如,Email domain ​字段是​ Calculated SQL field,其扩展名为​ (@domain)

NOTE
使用​ Search ​工具查找可用字段。

双击可用字段以将其添加到输出列。 在查询结束时,每个选定的字段都会在​ Data preview ​窗口中创建一个列。

默认情况下,不显示高级字段。 单击可用字段右下角的​ Display advanced fields ​以显示所有内容。 再次单击可返回到前视图。

例如,在收件人表中,高级字段为​ Boolean 1Boolean 2Boolean 3Foreign key of “Folder” link ​等。

以下示例显示了收件人表的高级字段。

各种类别的字段:

图标
说明
示例
简单字段
电子邮件、性别等。
主键。 此SQL字段用于标识表中的记录。
标识符收件人为主键,标识符按定义是唯一的。
外键。 用作指向另一个表的链接。
收件人外键、服务外键等
计算字段。 根据请求,使用数据库中的值计算此类型的字段。
年龄、电子邮件域等
包含长文本的字段。
评论、完整地址等
已编制索引的SQL字段。
全名、ISO代码等。

链接到表和收集要素:

图标
说明
示例
尤其是指向表的链接。 这些规则与1-1类型关联一致。 源表的出现只能与目标表的一个出现一致。 例如,一个国家/地区只能链接一个收件人。
文件夹、州/省、国家/地区等。
特定表上的收集要素。 它们与1-N类型关联一致。 一个源表格出现次数可以与目标表格的多个出现次数一致,但目标表格出现次数可以只与源表格出现次数一致。 例如,一个收件人可以订阅'n'个订阅信。
订阅、列表、排除日志等
NOTE
  • 使用​ Add ​按钮(侧图标栏上方)添加要编辑表达式的输出列。 有关编辑表达式的详细信息,请参阅本节
  • 通过单击红色的“x”(删除)删除输出列。
  • 使用箭头更改输出列的顺序。
  • Distribution of values ​用于查看所选字段值的分布情况(例如,链接到收件人城镇、收件人语言等的分布情况)。

创建计算字段 creating-calculated-fields

如有必要,请在设置数据格式期间添加列。 计算字段将列添加到数据预览部分。 单击 Add a calculated field

有四种类型的计算字段:

  • Fixed string:用于添加字符串。

  • String with JavaScript tags:计算字段的值将字符串和JavaScript指令组合在一起。

  • JavaScript expression:计算字段的值是JavaScript函数评估的结果。 可以键入返回的值(数字、日期等)。

  • Enumerations:此类型的字段允许您使用/修改新列中某个输出列的内容。

    可以使用列的源值并为它指定目标值。 此目标值将显示在新输出列中。

    添加计算字段类型​ Enumerations ​的示例可用,请参阅此部分

    Enumerations ​类型计算字段可以包括4个条件:

    • Keep the source value ​将源值还原到目标而不更改它。
    • Use the following value ​允许您为未定义的源值输入默认目标值。
    • Generate a warning and continue ​警告用户无法更改源值。
    • Generate an error and reject the line ​阻止计算和导入该行。

单击​ Detail of calculated field ​可查看插入字段的详细信息。

要删除此计算字段,请单击​ Remove the calculated field ​十字。

构建表达式 building-expressions

表达式编辑工具允许您使用表达式计算聚合、生成函数或编辑公式。

以下示例说明如何对主键运行计数。

应用以下步骤:

  1. 在​ Data to extract ​窗口中单击​ Add。 在​ Formula type ​窗口中,选择公式类型以输入表达式。

    有多种类型的公式可用: Field onlyAggregateExpression

    选择​ Process on an aggregate function ​和​ Count。 单击 Next

  2. 计算主键。

以下是​ Formula types ​窗口中可用选项的详细视图:

  1. Field only ​允许您返回​ Field to select ​窗口。

  2. Aggregate (Process on an aggregate function)。 以下是聚合使用的一些示例:

    • Count ​允许您运行主键计数。

    • Sum ​允许您合计客户在一年以上的所有购买次数。

    • Maximum value ​允许您查找购买最多“n”个产品的客户。

    • Minimum value ​允许您对客户进行排序,并查找最近订阅了优惠的用户。

    • Average。 此函数允许您计算收件人的平均年龄。

      Distinct ​框允许您恢复列的唯一值和非零值。 例如,您可以恢复所有收件人的跟踪日志,这些跟踪日志将更改为值1,因为它们都涉及同一收件人。

  3. Expression ​打开​ Edit the expression ​窗口。 这样,您就可以检测包含太多数字(可能是输入错误)的电话号码。

    有关所有可用函数的列表,请参阅函数列表

函数列表 list-of-functions

如果选择​ Expression ​类型公式,您将被带到“编辑表达式”窗口。 各种类别的函数可以与可用字段关联: AggregatesStringDateNumericalCurrencyGeomarketingWindowing function ​和​ Others

表达式编辑器如下所示:

它允许您选择数据库表中的字段并向它们添加高级函数。 可以使用以下函数:

聚合

名称
说明
语法
平均
返回数字类型列
的平均值
Avg(<值>)
计数
计算列
的非空值
Count(<值>)
CountAll
计算返回的值(所有字段)
CountAll()
Countdistinct
计算列
的不同非空值
Countdistinct(<值>)
最大
返回数字、字符串或日期类型列
的最大值
Max(<值>)
分钟
返回数字、字符串或日期类型列
的最小值
Min(<值>)
StdDev
返回数字、字符串或日期列
的标准偏差
StdDev(<值>)
总和
返回数字、字符串或日期类型列
的值的总和
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(<字符串>, <数字>, <字符>)
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(<数字>, <数字>)
Upper
返回以大写表示的字符串
Upper(<字符串>)
VirtualLink
如果其他两个参数相等,则返回作为参数传递的链接的外键
VirtualLink(<数字>, <数字>, <数字>)
VirtualLinkStr
如果其他两个参数相等,则返回作为参数传递的链接的外键(文本)
VirtualLinkStr(<字符串>, <数字>, <数字>)
数据长度
返回字符串大小
dataLength(<字符串>)

日期

名称
说明
语法
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<日期>, <秒数>)
TruncWeek
将日期舍入到周
TruncWeek(<日期>)
TruncYear
将日期+时间舍入到年度的 1 月 1 日
TruncYear(<日期>)
TruncWeek
返回表示日期一周中某天的日期数字
WeekDay(<日期>)
Year
返回表示日期年份的数字
Year(<日期>)
YearAnd Month
返回表示日期的年份和月份的数字
YearAndMonth(<日期>)
YearsDiff
返回两个日期之间的年数之差
YearsDiff(<结束日期>, <开始日期>)
YearsOld
返回日期的年龄(以年为单位)
YearsOld(<日期>)
NOTE
请注意,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>)
  1. 货币
名称
说明
语法
ConvertCurrency
将以源货币表示的金额转换为以目标货币表示的金额
ConvertCurrency(<金额>, <源货币>, <目标货币>, <兑换日期>)
FormatCurrency
根据所选货币设置设置显示的金额格式
FormatCurrency(<金额>, <货币>)

地理营销

名称
说明
语法
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(<值1>, <值2>)
GetEmailDomain
从电子邮件地址提取域名
GetEmailDomain(<值>)
GetMirrorURL
检索镜像页面服务器的 URL
GetMirrorURL(<值>)
Iif
如果表达式为true,则返回值1。 如果不存在,则返回值2
Iif(<条件>, <值 1>, <值 2>)
IsBitSet
指示标志是否在值中
IsBitSet(<标识符>, <标识>)
IsEmptyString
如果字符串1为空,则返回值2,否则返回值3
IsEmptyString(<值1>, <值2>, <值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>))
recommendation-more-help
601d79c3-e613-4db3-889a-ae959cd9e3e1