定义过滤器条件

选择运算符

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

以下是可用运算符列表:

运算符
用途
示例
等于
返回与在第二个值列中输入的数据相同的结果。
姓氏(@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) 为空,将返回所有没有移动设备号码的收件人。
不为空
Is empty运算符相反。 无需在第二个值列中输入数据。
电子邮件(@email)不为空
包含在
返回所指示值中包含的结果。 这些值必须用逗号分隔。
出生日期(@birthDate)包含在“12/10/1979,12/10/1984”中,将返回在这些日期之间出生的收件人。
未包含在
Is included in运算符类似的工作。 在此,我们要根据输入的值排除收件人。
出生日期(@birthDate)不包括在“12/10/1979,12/10/1984”中。与上一个示例不同,不会返回在这些日期内出生的收件人。

使用和或,但除外

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

  • And 允许您组合使用两个筛选条件,
  • Or 允许您提供替代方法,
  • Except 允许您定义例外。

单击​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​可显示所有内容。 再次单击可返回到前一个视图。

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

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

各种字段类别:

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

链接到表和集合元素:

图标
说明
示例
特别是指向表的链接。 这些类型与1-1类型关联一致。 源表格的存在只能与目标表格的一个存在一致。 例如,只能将一个收件人链接到国家/地区。
文件夹、状态、国家/地区等
特定表上的收集元素。 这些值与1-N类型关联一致。 一个源表实例可以与目标表的多个实例一致,但一个目标表实例只能与源表的一个实例一致。 例如,一个收件人可以订阅“n”订阅信。
订阅、列表、排除日志等
注意
  • 使用​Add​按钮(侧图标栏上方)添加要在其中编辑表达式的输出列。 有关编辑表达式的更多信息,请参阅此部分
  • 单击红色的“x”(Delete)删除输出列。
  • 使用箭头更改输出列的顺序。
  • Distribution of values​用于查看所选字段值的分布(例如,链接到收件人镇、收件人语言等的分布)。

创建计算字段

如有必要,请在数据格式设置期间添加列。 计算字段会向数据预览部分添加一列。 单击 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​交叉点。

生成表达式

利用表达式编辑工具,可使用表达式计算聚合、生成函数或编辑公式。

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

应用以下步骤:

  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 口。这样,您就可以检测到数字过多的电话号码,这可能是输入错误。

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

函数列表

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

表达式编辑器如下所示:

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

聚合

名称
说明
语法
平均
返回数字类型列
的平均值
Avg(<值>)
计数
计算列
的非空值
Count(<值>)
CountAll
计算返回的值(所有字段)
CountAll()
Countdistinct
计算列
的非空值
Countdistinct(<值>)
Max
返回数字、字符串或日期类型列
的最大值
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
返回字符串大小
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
返回对应于当前日期的日期(整数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<日期>, <秒数>)
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>)
  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>))

在此页面上